generate random number with total sum is 10
Mostra commenti meno recenti
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
Risposta accettata
Più risposte (2)
James Tursa
il 13 Gen 2021
Modificato: James Tursa
il 13 Gen 2021
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 Commenti
Khairul nur
il 13 Gen 2021
Bruno Luong
il 13 Gen 2021
Modificato: Bruno Luong
il 13 Gen 2021
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
il 13 Gen 2021
Modificato: James Tursa
il 13 Gen 2021
@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
il 3 Feb 2021
0 voti
4 Commenti
Bruno Luong
il 3 Feb 2021
You post in the wrong place (answer and not comment) so no one know what you refer to in "The first one".
Khairul nur
il 3 Feb 2021
Bruno Luong
il 3 Feb 2021
Modificato: Bruno Luong
il 3 Feb 2021
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
il 4 Feb 2021
Categorie
Scopri di più su Logical in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
