Generating random numbers within a range determined by elements in another array
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello,
I was wondering if there is an efficient way to generate a random integer within a range depending on an element in another array. Perhaps a small example will explain better:
1 must generate a random number in [3 7];
2 must generate a random number in [1 3];
3 must generate a random number in [44 66]
So for the vector [3 1 2] I would want to get another vector [59 4 2], for example.
I was thinking of using arrayfun to do this but I don't know if there is a more efficient way?
Any help/advice would be greatly appreciated.
Thanks
0 Kommentare
Akzeptierte Antwort
Iain
am 21 Mai 2013
Bearbeitet: Andrei Bobrov
am 22 Mai 2013
Array = [3 7; 1 3; 44 66];
Choose your row, "i"
NewRandom = roundingfunctionofchoice(rand(size(i)).*(Array(i,2)-Array(i,1)) + Array(i,1));
If you set i = [3 1 2], you'll get what you want.
Weitere Antworten (1)
Image Analyst
am 21 Mai 2013
Did you look at the help for rand() and notice the first example? Here it is:
Example 1
Generate values from the uniform distribution on the interval [a, b]:
r = a + (b-a).*rand(100,1);
Basically it all comes down to that. Do that 3 times with different a and b depending on what the 3 numbers are. Is this homework?
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!