我正在寻找任何函数或方法来创建随机数的二维数组,其中值预定义如下:
array=generateNumbers(medianValue)
将返回具有中值= medianValue
的2D数组有可能吗?
答案 0 :(得分:3)
Matlab函数rand
生成(伪)随机数,均匀分布在区间[0,1]上。该分布的中位数为0.5。您可以通过向每个数字添加m
来使中位数为m-0.5
。功能
function array = generateNumbers(m, n, medianValue)
array = rand(m,n)-0.5 + medianValue;
end
返回一个大小为m的随机矩阵,取自具有给定中位数的均匀分布。
这些数字是随机的,很难确定生成数字的实际中位数将等于给定的中位数值。
要确定所选数字的特定中位数,您可以执行以下操作:
function array = generateNumbers(m, n, medianValue)
array = rand(m,n);
array = array - median(array(:)) + medianValue;
end
help rand
中的相关命令指向Matlab中可用的其他发行版。