Функция Matlab, которая генерирует случайные действительные числа в закрытом интервале
В Matlab есть какая-либо функция, которая генерирует случайные действительные числа в закрытом интервале. Я нашел что-то с unifrnd()
но он генерирует числа в открытом интервале. Если я использую unifrnd(x,y);
Я получаю (x,y) интервал вместо [x,y].
1 ответ
Учитывая обсуждение точности в комментариях, вы можете использовать что-то вроде:
mag = floor(log10( y - x))
num = unifrnd(x-(10^mag)*eps, y+(10^mag)*eps)
Это по существу добавляет одну "точку" к представлению дискретного интервала, принимая во внимание точность, основанную на размере чисел, которые вы используете. unifrnd()
по сути, обертка вокруг rand()
(что означает, что вам на самом деле не нужен набор инструментов статистики для этого), и, таким образом, он просто масштабирует равномерное распределение по (0,1). Если вы беспокоитесь о конечных точках, это имеет значение, потому что вы не можете получить более детализированный результат, чем величина вашего интервала с eps
,