How to generate random integers from the uniform distribution between two numbers
6 views (last 30 days)
Show older comments
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 Comments
Stephen23
on 22 May 2017
@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.
Accepted Answer
the cyclist
on 21 May 2017
Edited: the cyclist
on 21 May 2017
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 Comments
More Answers (1)
Guillaume
on 21 May 2017
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 Comments
Guillaume
on 21 May 2017
Oh! Well, in that case, simply divide the bounds by 5 and multiply the integer results by 5 afterward.
See Also
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!