在Matlab中将数组的变量放在另一个数组的行中

时间:2015-05-08 17:13:00

标签: arrays matlab matrix

正如我在主题名称中所说,我想将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  

许多人:)

2 个答案:

答案 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