我希望使用随机值的输出来选择将输入到新矩阵中的列,称为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数字?
答案 0 :(得分:0)
我并不完全跟着你,但我看不出为什么会有一些
的变种Matrix1 = [a(:,round(rand()*n+1)) Matrix1]
不合适。比舍入rand
更好的是使用返回伪随机整数的randi
函数,也许
Matrix1 = [a(:,randi(n)) Matrix1]
但是,如果像@angainor建议的那样,你试图置换输入矩阵的列,那么请查看permute
函数。