Как я могу сгенерировать случайное число в MATLAB между 13 и 20?
Если вы ищете равномерно распределенные псевдослучайные целые числа, используйте:
randi([13, 20])
http://www.mathworks.com/help/techdoc/ref/rand.html
n = 13 + (rand(1) * 7);
r = 13 + 7.*rand(100,1);
Где 100,1 - это размер требуемого вектора
ocw.mit.edu - отличный ресурс, который мне очень помог.Лучше всего выбрать randi, но если вы любите цифры, попробуйте использовать функцию floor с rand, чтобы получить то, что вы хотите.
Я нарисовал числовую линию и придумал
floor(rand*8) + 13
Лучшее решение - randint, но эта функция выдает целые числа.
randint
Вы можете использовать rand с функцией округления
rand
r = round(a + (b-a).*rand(m,n));
В результате получается реальное случайное число между a и b, размер выходной матрицы m * n
если вы хотите сгенерировать все числа в пределах определенного ранга случайным образом, тогда вы можете попробовать
r = randi([a b],1,d)
a = начальная точка
a
b = конечная точка
b
d = сколько чисел вы хотите сгенерировать, но имейте в виду, что d должно быть меньше или равно b-a
d
b-a
Генерация значений из равномерного распределения на интервал [a, b].
r = a + (b-a).*rand(100,1);
Вы также можете использовать:
round(mod(rand.*max,max-1))+min
Если вам нужно плавающее случайное число от 13 до 20
(20-13).*rand(1) + 13
Если вам нужно целое число от 13 до 20
floor((21-13).*rand(1) + 13)
Примечание: исправьте проблему, упомянутую в комментарии «Это исключает 20», заменив 20 на 21