生成随机数组,使较高索引处的数字更大

时间:2016-09-26 08:53:40

标签: arrays matlab random

我正在尝试生成一个随机数组,以便较高索引处的数字应大于较低索引处的数字。

例如,像这样的数组:

array = [1.5  1.7  2.4  5.6  8.5  8.9  9.2  9.5  10.2  11.3]

我可以这样做:

array(1:10) = 0;       % Pre-allocation
array(1) = abs(randn); % Generating a +ve rand no.
for k=2:10
    array(k) = abs(randn) + array(k-1);  % adding a +ve rand no. to the previous value 
end

我正在寻找更好的(和/或矢量化)方式!

1 个答案:

答案 0 :(得分:3)

myarray = sort(rand(1, 10))

会做,我想

编辑:

虽然你的问题没有提及,但从你的例子中你想要正数,

所以    sort(abs(rand(1, 10)))

你会做你想要的吗。