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