Creating a matrix with three different values with different probability.
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Sai Kiran Maryada
el 26 de Mzo. de 2019
Comentada: Sai Kiran Maryada
el 26 de Mzo. de 2019
I'm trying to generate a matrix
with three distinct values
with each probability 1/6 and 0 with probability 2/3.
- I'm trying to approach this problem by creating a first vector with 25 elements with
, second vector with 25 elements with
, third vector with 100 elements with 0. - I will use horzcat to create a vector of
. - Then I reshuffle the vector using randperm.
- Finally, I will use reshape to convert vector into a matrix of
.
I would like to know whether this approach is correct. If it is correct, is there any other better approach to solve this problem ?
c1= sqrt(3)*ones(1,25);
c2= -sqrt(3)*ones(1,25);
c3= zeros(1,100);
c = horzcat(c1, c2, c3)
d = c(randperm(length(c)));
T = reshape(d, 10, 15);
Many thanks for this wonderful community.
0 comentarios
Respuesta aceptada
Walter Roberson
el 26 de Mzo. de 2019
That approach is appropriate for the case where the exact number of each value is fixed in advance. It is not appropriate when the probabilities are independent of each other, where fractions are statistical rather than exact.
One approach is to take
temp = [sqrt(3), -sqrt(3), 0, 0, 0, 0];
output = temp(randi(length(temp), 10, 15));
This fills statistically rather than with exact fractions.
Más respuestas (0)
Ver también
Categorías
Más información sobre Random Number Generation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!