How to generate random integers from the uniform distribution between two numbers
4 次查看(过去 30 天)
显示 更早的评论
Assume matrix A as follows:
A = [
810 840
840 870
870 900
900 930
930 960
];
For every row in matrix A,I want to generate random integers from the uniform distribution between column 1 and column 2. Also, these random numbers should be divided by 5 with decimal 0 (e.g. 810 (not 811)).
The output matrix size should be 5*1.
I think the right function is randi, but I don't know how to form it.
3 个评论
Stephen23
2017-5-22
@Zhan: you keep asking questions, but you have not accepted any of the answers to any of your questions. Accepting answers shows which answer solved your question, and is also an easy way for you to say "thank you" for our volunteer effort helping you.
采纳的回答
the cyclist
2017-5-21
编辑:the cyclist
2017-5-21
Under the assumption that you want to include the endpoints, and that the elements of A are evenly divisible by 5:
A = [
810 840
840 870
870 900
900 930
930 960
];
nrows = size(A,1);
r = zeros(nrows,1);
for nr = 1:nrows
r(nr) = 5*randi(A(nr,:)/5);
end
0 个评论
更多回答(1 个)
Guillaume
2017-5-21
Simply loop over the rows:
result = zeros(size(A, 1), 1);
for row = 1:size(A, 1)
result(row) = randi(A(row));
end
I do not understand "these random numbers should be divided by 5 with decimal 0"
3 个评论
Guillaume
2017-5-21
Oh! Well, in that case, simply divide the bounds by 5 and multiply the integer results by 5 afterward.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!