Функция Matlab rand
генерирует (псевдо) -случайные числа, равномерно распределенные на интервале [0,1]. Медиана этого распределения равна 0,5. Вы можете сделать медиану равной m
, добавив m-0.5
к каждому номеру. Функция
function array = generateNumbers(m, n, medianValue)
array = rand(m,n)-0.5 + medianValue;
end
возвращает случайную матрицу размера т на п, взятую из равномерного распределения с заданной медианой.
Цифры, являющиеся случайными, далеки от уверенности в том, что фактическая медиана сгенерированных чисел будет равна данному медианному значению.
Для выяснения конкретной медиана выбранных номеров, вы можете сделать следующее:
function array = generateNumbers(m, n, medianValue)
array = rand(m,n);
array = array - median(array(:)) + medianValue;
end
связанных команд в help rand
точки для других дистрибутивов в Matlab.
Возможно, вы можете проверить это сообщение, чтобы увидеть алгоритм: http://stackoverflow.com/questions/8373200/generate-numbers-in-r – Esteban
Вы хотите нормально или равномерно распределенные номера (или что-то еще)? Вы заботитесь о значении? Могут ли цифры быть отрицательными? Какие границы вы хотите (или вы не хотите никаких ограничений)? Предложение Эстебана должно быть полезным, но если это не так, вам нужно будет ответить на этот вопрос, чтобы вы могли получить ответы. – David
@Esteban Спасибо. Это то, что я ищу. –