在 Matlab 中生成具有预定义中位数的随机数?
Generate random numbers with pre-defined median in Matlab ?
我正在寻找任何函数或方法来创建二维随机数数组,其中值预定义如下:
array=generateNumbers(medianValue)
将 return 二维数组中值 = medianValue
可能吗?
Matlab 函数rand
生成在区间[0,1] 上均匀分布的(伪)随机数。此分布的中位数为 0.5。您可以通过向每个数字添加 m-0.5
来使中位数为 m
。函数
function array = generateNumbers(m, n, medianValue)
array = rand(m,n)-0.5 + medianValue;
end
returns 大小为 m x n 的随机矩阵,取自具有给定中位数的均匀分布。
数字是随机的,不能确定生成数字的实际中位数是否等于给定的中位数。
要确定所选数字的特定中位数,您可以执行以下操作:
function array = generateNumbers(m, n, medianValue)
array = rand(m,n);
array = array - median(array(:)) + medianValue;
end
help rand
中的相关命令指向 Matlab 中可用的其他分布。
我正在寻找任何函数或方法来创建二维随机数数组,其中值预定义如下:
array=generateNumbers(medianValue)
将 return 二维数组中值 = medianValue
可能吗?
Matlab 函数rand
生成在区间[0,1] 上均匀分布的(伪)随机数。此分布的中位数为 0.5。您可以通过向每个数字添加 m-0.5
来使中位数为 m
。函数
function array = generateNumbers(m, n, medianValue)
array = rand(m,n)-0.5 + medianValue;
end
returns 大小为 m x n 的随机矩阵,取自具有给定中位数的均匀分布。
数字是随机的,不能确定生成数字的实际中位数是否等于给定的中位数。
要确定所选数字的特定中位数,您可以执行以下操作:
function array = generateNumbers(m, n, medianValue)
array = rand(m,n);
array = array - median(array(:)) + medianValue;
end
help rand
中的相关命令指向 Matlab 中可用的其他分布。