random numbers with mean-correction
조회 수: 2 (최근 30일)
이전 댓글 표시
Hi,
I would like to generate random numbers with follow a normal distribution (randn) but mean-corrected with the following condition: sum(randon numbers)=K.
Where K is a constant.
Can anyone help me?
Thanks a lot.
댓글 수: 0
채택된 답변
추가 답변 (1개)
Roger Stafford
2013년 6월 9일
In preference to the method in fileexchange/9700, (even though I wrote it,) I would suggest a method that exhibits a normal distribution on the hyperplane defined by K.
Suppose each vector (sample) of numbers which must have a sum of K has n components and you wish to generate N such random vectors. Do this:
u = repmat(K/n,n,1);
V = null(u.');
P = bsxfun(@plus,u,V*randn(n-1,N));
Each of the N columns of P has n numbers which always sum to K. In the n-1 dimensional hyperplane defined by this requirement, the points do have a multivariate normal distribution.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!