What does x=randint(1,1,[1,n]); ?

144 次查看(过去 30 天)
Jenny
Jenny 2018-1-9
移动Rik 2022-9-26
What does x=randint(1,1,[1,n]); ?

采纳的回答

M
M 2018-1-9
I may be wrong, but I think randint was part of the Communication System Toolbox and its functionality has been replaced by the randi function, for which you can find details here .
  2 个评论
Walter Roberson
Walter Roberson 2018-1-9
Correct. randint(1,1,[1,n]) would now be written as randi([1,n],1,1)

请先登录,再进行评论。

更多回答(3 个)

pankaj singh
pankaj singh 2018-3-10
Please note that randint is an obsolete function in the Matlab. You can use randi instead.
randint generates the matrix of uniformly distributed random integers. e.g.
out = randint(M,N);
generates M-by-N matrix of random binary numbers, i.e., 0 and 1 occur with equal probability.
Your example is similar to
out = randint(M,N,[IRANGE(1), IRANGE(2)]]);
where an M-by-N matrix is generated and the elements of the matrix will be in the range mentioned in the square brackets.
Therefore,
x=randint(1,1,[1,n]);
will generate a 1-by-1 matrix or just a number within the range [1, n], where n can be any integer.

DHRUVIN SUTHAR
DHRUVIN SUTHAR 2019-7-13
Hi, I wanted to genrate the single random value in between 5 to 10 and I am trying to use randint function as a randi but I getting an error. could anyone please suggest me any idea?
x =randi(1,1,[5,10]); but I am getting an error "Error using randi;
Size inputs must be scalar."
  5 个评论
Walter Roberson
Walter Roberson 2022-9-23
randint(1,ndata*col,M)
would return a 1 x (ndata*col) row vector in which each element was an integer in the range [0 M-1]
The more modern equivalent would be
randi([0 M-1], 1, ndata*col)

请先登录,再进行评论。


Zeeshan Ahmad
Zeeshan Ahmad 2020-4-19
Randint is no more working, you have to use randi but it will make difference,
like if you are writing randint(9600,1)
now for randi you have to write randi(1,9600)
  3 个评论
Zeeshan Ahmad
Zeeshan Ahmad 2020-4-19
bother let take a example. randi(1,9600) will generate the data of 9600x9600
and randi(9600,1) will give you any single value, (between 0-9600) for example on first run it gate me 5860
now to come to your point.
your ans was correct as "randint(1,1,[1,n]) would now be written as randi([1,n],1,1)"
i was just giving an example to new people who take code from mathworks and cant run it in advance versions.
Walter Roberson
Walter Roberson 2020-4-19
randi(9600,1) will give you any single value, (between 0-9600)
This is a difference between randi and randint. randi(9600,1) would give you a single value in the range 1 to 9600, whereas randint(9600,1) would give you 9600 values in the range 0 to 1, and randint(1,1,9600) would give you a single value in the range 0 to 9599, but randint(1,1,[1 9600]) would give you a single value in the range 1 to 9600.

请先登录,再进行评论。

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by