开发者

Generate a random number in a certain range in MATLAB

How can I generate a random number in MATLA开发者_运维百科B between 13 and 20?


If you are looking for Uniformly distributed pseudorandom integers use:

randi([13, 20])


http://www.mathworks.com/help/techdoc/ref/rand.html

n = 13 + (rand(1) * 7);


r = 13 + 7.*rand(100,1);

Where 100,1 is the size of the desidered vector


ocw.mit.edu is a great resource that has helped me a bunch. randi is the best option, but if your into number fun try using the floor function with rand to get what you want.

I drew a number line and came up with

floor(rand*8) + 13


You can also use:

round(mod(rand.*max,max-1))+min


Generate values from the uniform distribution on the interval [a, b].

      r = a + (b-a).*rand(100,1);


Best solution is randint , but this function produce integer numbers.

You can use rand with rounding function

  r = round(a + (b-a).*rand(m,n));

This produces Real random number between a and b , size of output matrix is m*n


if you are looking to generate all the number within a specific rang randomly then you can try

r = randi([a b],1,d)

a = start point

b = end point

d = how many number you want to generate but keep in mind that d should be less than or equal to b-a


If you need a floating random number between 13 and 20

(20-13).*rand(1) + 13

If you need an integer random number between 13 and 20

floor((21-13).*rand(1) + 13)

Note: Fix problem mentioned in comment "This excludes 20" by replacing 20 with 21

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜