0

我希望使用随机值的输出来选择将输入到新矩阵中的列,称为 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

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

4

1 回答 1

0

我不完全关注你,但我不明白为什么有些变体

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

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

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

但是,如果正如@angainor 所建议的那样,您正在尝试置换输入矩阵的列,那么请查看该permute函数。

于 2012-10-10T15:25:33.010 回答