Генерация случайного числа в определенном диапазоне в MATLAB - PullRequest
39 голосов
/ 22 февраля 2011

Как я могу сгенерировать случайное число в MATLAB между 13 и 20?

Ответы [ 9 ]

57 голосов
/ 22 февраля 2011

Если вы ищете равномерно распределенные псевдослучайные целые числа, используйте:

randi([13, 20])
9 голосов
/ 22 февраля 2011
6 голосов
/ 22 февраля 2011
r = 13 + 7.*rand(100,1);

Где 100,1 - это размер требуемого вектора

1 голос
/ 10 декабря 2014

ocw.mit.edu - отличный ресурс, который мне очень помог.Лучше всего выбрать randi, но если вы любите цифры, попробуйте использовать функцию floor с rand, чтобы получить то, что вы хотите.

Я нарисовал числовую линию и придумал

floor(rand*8) + 13
0 голосов
/ 25 июня 2018

Лучшее решение - randint, но эта функция выдает целые числа.

Вы можете использовать rand с функцией округления

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

В результате получается реальное случайное число между a и b, размер выходной матрицы m * n

.
0 голосов
/ 05 июня 2017

если вы хотите сгенерировать все числа в пределах определенного ранга случайным образом, тогда вы можете попробовать

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

a = начальная точка

b = конечная точка

d = сколько чисел вы хотите сгенерировать, но имейте в виду, что d должно быть меньше или равно b-a

0 голосов
/ 05 февраля 2015

Генерация значений из равномерного распределения на интервал [a, b].

      r = a + (b-a).*rand(100,1);
0 голосов
/ 01 августа 2014

Вы также можете использовать:

round(mod(rand.*max,max-1))+min
0 голосов
/ 24 февраля 2014

Если вам нужно плавающее случайное число от 13 до 20

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

Если вам нужно целое число от 13 до 20

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

Примечание: исправьте проблему, упомянутую в комментарии «Это исключает 20», заменив 20 на 21

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...