Как сделать генератор случайных чисел в Matlab, основанный на процентах? - PullRequest
2 голосов
/ 19 мая 2010

В настоящее время я использую встроенный генератор случайных чисел.

например

nAsp = randi ([512, 768], [1,1]);

512 - нижняя граница, а 768 - верхняя граница, генератор случайных чисел выбирает число между этими двумя значениями.

Мне нужно иметь два диапазона для nAsp, но я хочу, чтобы один из них вызывался в 25% случаев, а другой в 75%. Затем включается в уравнение. У кого-нибудь есть идеи, как это сделать или если в matlab уже есть встроенная функция?

например

nAsp = randi ([512, 768], [1,1]); звонят в 25% случаев

nAsp = randi ([690, 720], [1,1]); 75% времени звонят

1 Ответ

6 голосов
/ 19 мая 2010

Я предполагаю, что вы имеете в виду случайно 25% времени? Вот один простой способ сделать это:

if (rand(1) >= 0.25) %# 75% chance of falling into this case
    nAsp = randi([690 720], [1 1]);
else
    nAsp = randi([512 768], [1 1]);
end

Если вы знаете, что генерируете N из них, вы можете сделать

idx = rand(N,1);
nAsp = randi([690 720], [N 1]);
nAsp(idx < 0.25) = randi([512 768], [sum(idx < 0.25) 1]); %# replace ~25% of the numbers
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...