- max = 255
- min = 0
- mean = 200
Generate random numbers with specific mean
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Amr Ayman
el 8 de Mayo de 2023
I want to generate matrix 4*4 of random integer values from 0 to 255, i used randi([0 255],4) but i want to generate it with specific mean for example 200 so i used:
z = randi([0 255],4)
z = z + (200 - mean2(z))
that did fix mean value but it could change min and max value of integers, How can i fix it ??!
2 comentarios
the cyclist
el 8 de Mayo de 2023
Editada: the cyclist
el 8 de Mayo de 2023
There are an infinite number of ways to generate random integers that have the following properties:
For example,
N = 1000000;
p = 200/255;
x = 255 * (rand(N,1) < p);
mean(x) % Will be equal to 200, within sampling error
figure
histogram(x)
This distribution obeys the rules you have told us. And, as I said, there are infinite others. You need more specificity on the distribution.
Respuesta aceptada
Matt J
el 8 de Mayo de 2023
Editada: Matt J
el 8 de Mayo de 2023
You can use this FEX download
m=4;n=4; targetMean=200;
z = randfixedsum(m*n,1,targetMean*m*n,0,255);
z=reshape(z,m,n);
mean(z(:))
ans =
200.0000
7 comentarios
Matt J
el 9 de Mayo de 2023
Editada: Matt J
el 9 de Mayo de 2023
There is a difference between
- flip 10 coins, and on average get 5 tails
- flip 10 coins, and always get 5 tails
There can be a difference, but note that the second always implies the first.
And yeah it generates real values not integer so i added floor after reshaping "which will make value of mean slightly change around 200 not to be always 200 :)) "
In fact, if you apply round() instead of floor(), I would expect the statistical average to remain at 200, even if the nonstatistical average mean(z(:)) does not remain perfectly at 200.
Más respuestas (0)
Ver también
Categorías
Más información sobre Creating and Concatenating Matrices 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!