2010-05-19 5 views
2

현재 내장 된 난수 생성기를 사용하고 있습니다. 예%를 기반으로 matlab에 난수 생성기를 만드는 방법?

위한

NASP 랜디 = ([512, 768], [1,1]);

512는 하한이고 768은 상한입니다. 난수 생성기는이 두 값 사이에서 숫자를 선택합니다.

내가 원하는 것은 nAsp에 대해 두 가지 범위를 갖는 것이지만 그 중 하나는 시간의 25 % 및 다른 시간의 75 %라고 부르기를 원합니다. 그런 다음 그는 방정식에 연결됩니다. 누구든지이 일을하는 방법이나 matlab에 이미 내장 된 함수가 있다면 아이디어가 있습니까? 예

위한

NASP 랜디 = ([512, 768], [1,1]); 25 %의 시간이 걸린다.

nAsp = randi ([690, 720], [1,1]); 시간의 75 %가 호출됩니다

답변

6

무작위로 25 %의 시간을 의미한다고 가정합니까? 여기에 그것을 할 수있는 쉬운 방법 중 하나입니다 : 당신은이 중 N을 생성하고 알고있는 경우

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 

, 당신이 할 수는

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 
관련 문제