generate random number with total sum is 10
이전 댓글 표시
How can i generate a table of 6x2 with sum of the row is 10 for example:
0.6 0.4
0.5 0.5
0.7 0.3
i try this way:
r = rand(1, 3); % Start with 3 random numbers that don't sum to 1.
r = r / sum(r) % Normalize so the sum is 1.
however the sum is vertically. How i want to make the sum horizontally?
theSum = sum(r) % Check to make sure. Should be 1
tqvm
채택된 답변
추가 답변 (2개)
James Tursa
2021년 1월 13일
편집: James Tursa
2021년 1월 13일
Not sure from your wording if you want the row sums to be 1 or 10. If it is 1, then
r = rand(6,1);
r(:,2) = 1 - r(:,1);
Modifying your code you could also do this:
r = rand(6,2);
r = r ./ sum(r,2);
댓글 수: 3
Khairul nur
2021년 1월 13일
Bruno Luong
2021년 1월 13일
편집: Bruno Luong
2021년 1월 13일
Careful in selecting the methods if you need a correct conditioning distribution.
James's second method won't give a proper "uniform" conditioning distribution
r=rand(100000,2); r=r./sum(r,2);
histogram(r(:))

The first method gives a more "healty" distribution
r = rand(100000,1); r(:,2) = 1 - r(:,1);
histogram(r(:))

PS: This method won't extend if you need more than 2 that sum to 1. Need other methods for that case.
James Tursa
2021년 1월 13일
편집: James Tursa
2021년 1월 13일
@Bruno: Yes, the 2nd method posted was just to show OP how to modify his version of the code to get the row sums = 1. But if uniform distribution is desired then I would typically just point to Roger Stafford's randfixedsum solution as you have done. OP needs to pick a method for the distribution he wants.
Khairul nur
2021년 2월 3일
0 개 추천
댓글 수: 4
Bruno Luong
2021년 2월 3일
You post in the wrong place (answer and not comment) so no one know what you refer to in "The first one".
Khairul nur
2021년 2월 3일
Bruno Luong
2021년 2월 3일
편집: Bruno Luong
2021년 2월 3일
Well you have been warned, I wrote in my comment;
"PS: This method won't extend if you need more than 2 that sum to 1. Need other methods for that case."
And I already give alternative method that can be extended in my answer using exponential pdf.
Khairul nur
2021년 2월 4일
카테고리
도움말 센터 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
