正如我在主题名称中所说,我想将3个数组的变量放在另一个数组的行中 看:例如,我有3个数组X1,X2,X3,它们的变量是:
X1=[1 2 3];
X2=[4 5 6];
X3=[7 8 9];
和另一个数组Y就是这样:
Y=zeros(3,3);
0 0 0
0 0 0
0 0 0
现在我想要第一行中的X1,第二行中的X2和第三行中的X3,如下所示:
3 1 2
4 6 5
9 8 7
许多人:)
答案 0 :(得分:1)
使用randperm
:
n = size(Y,2); %// number of columns
Y(1, randperm(n)) = X1;
Y(2, randperm(n)) = X2;
Y(3, randperm(n)) = X3;
答案 1 :(得分:1)
如果Xi
行向量位于单个数组X
中,则这样做更容易。
编辑:感谢LuisMendo提供的优化建议。
X = [X1;X2;X3];
[rows,cols] = size(X);
Y = zeros(rows,cols);
for i = 1:rows
Y(i,randperm(cols)) = X(i,:);
end