Inclusive random numbers on a matrix in matlab
9 次查看(过去 30 天)
显示 更早的评论
Hi I need to make a 20x10 matrix with random numbers between 0 and 5, inclusive. I already have the matrix but I can't manage to make it inclusive, all the numbers go up tu 4.9999, does anyone know how to do it? I used this formula M=0+(5-0).*rand(20,10)
0 个评论
采纳的回答
Ameer Hamza
2020-9-30
编辑:Ameer Hamza
2020-9-30
20x10 matrix is too small. rand() generates uniformly distributed random number, and the probability of getting exactly one is significantly less. If you increase the number of the element, you will have a good chance of getting one in rand()
For example
>> M=0+(5-0).*rand(2000,1000); % 2000x1000
>> max(M, [], 'all')
ans =
5.0000
Checking at higher precision, even this value is less than 5
>> format long
>> max(M, [], 'all')
ans =
4.999999540115017
Getting excatly 5 is "almost impossible".
If you really want 0 as lower and 5 as upper limit, then you will need to use rescale()
>> M=0+(5-0).*rand(2000,1000); % 2000x1000
>> M = rescale(M, 0, 5);
>> max(M, [], 'all')
ans =
5
>> min(M, [], 'all')
ans =
0
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!