How a generate random numbers within a probabilistic range?
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi there,
I would like to generate random numbers for an input of 48 variables within a probabilistic range. I managed to get results for a particular range (lets say -0.02 +0.02), using rand function. However how can I do the same for a probabilistic range like this:
50% probability the range to be -0.01 +0.01, 30% probability the range to be -0.02 +0.02 and so on.
many thanks
Nikolas
댓글 수: 2
답변 (1개)
Adam
2016년 11월 3일
편집: Adam
2016년 11월 3일
You could just do a simple 2 layer approach if rand gives you an acceptable distribution within each of your ranges.
e.g.
ranges = [-0.01 0.01; -0.02 0.02; -0.05 0.05];
rangeProbabilities = [0.5 0.3 0.2];
rangeVal = rand( )
rangeIdx = find( cumsum( rangeProbabilities ) >= rangeVal , 1 )
n = 48;
randomNumbers = ( rand( n, 1 ) -0.5 ) * 2 * ranges( rangeIdx, 2 ); % Produce n random numbers in range
Note that last line assumes your ranges are symmetric (in which case there's no point storing the 1st column anyway). If not then it is still simple enough to ensure a random number falls within a single predefined range.
참고 항목
카테고리
Help Center 및 File Exchange에서 Random Number Generation에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!