基于随机值输出的矩阵输入(Matlab)

时间:2012-10-10 15:04:37

标签: algorithm matlab matrix

我希望使用随机值的输出来选择将输入到新矩阵中的列,称为Matrix1。

我有以下内容:

a = [1 2 3 4; 5 3 6 2; 9 8 1 4];
n = length(a(1,:))-1;
RandomValue = round(rand()*n+1);
Matrix1 = [];
L=3;
for i=n:-1:1
    RandomValue
    if RandomValue < L
        Matrix1 = [a(:,i) Matrix1];
        a(:, i) = [];
        Matrix1
    end
end

E.g。如果随机值为2,我想将[2; 3; 8]放入Matrix1(基于第一行的值)。我怎么能修改代码,所以代替我的是Randomvalue数字?

1 个答案:

答案 0 :(得分:0)

我并不完全跟着你,但我看不出为什么会有一些

的变种
Matrix1 = [a(:,round(rand()*n+1)) Matrix1]

不合适。比舍入rand更好的是使用返回伪随机整数的randi函数,也许

Matrix1 = [a(:,randi(n)) Matrix1]

但是,如果像@angainor建议的那样,你试图置换输入矩阵的列,那么请查看permute函数。