Генерация случайных чисел в определенном диапазоне с определенным интервалом - PullRequest
1 голос
/ 27 февраля 2020

Я хочу сгенерировать вектор nx1 случайных чисел в указанном диапазоне, включая конечные точки с интервалом целых чисел. например,

[0 120] with spacing 40

Например, если n равно 10, один такой вывод может быть:

[0 80 0 120 0 0 40 0 120 40]

Кажется, что randi() что я должен использовать, но не похоже, что с ним можно делать все, что я хочу. Есть ли другая функция, которую я могу использовать, чтобы помочь мне с этим?

Ответы [ 2 ]

3 голосов
/ 27 февраля 2020

Если у вас есть набор инструментов, используйте randsample

v=0:40:120 %possible values
n=10 %number of samples
randsample(v,n,true)
2 голосов
/ 27 февраля 2020

Вы можете сделать:

randi( [0, floor(upperValue/spacing)], n, 1) * spacing

, если n = 10, upperValue = 120 и spacing = 40, тогда вы получите:

ans =

     0
    80
     0
    80
   120
   120
    80
    80
    40
    40

Использование floor необходимо в case upperValue/spacing не является целым числом. Вы можете сделать что-то подобное для нижней границы, если она не равна 0, используя ceil(lowerValue/spacing).

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