我有一个50 x 100的数组大小。我想做的是将第二列附加到第一列,第四列附加到第三列,第六列到第5列等等...所以我有一个100 x 50矩阵。以下示例显示了我要执行的操作
1 2 3 4变为1 3,依此类推 5 6 7 8 5 7 2 4 6 8
我找了一个类似的问题,但找不到一个
答案 0 :(得分:1)
这是一个小例子:
% Define a sample matrix:
A = [
1 2 3 4 5 6 7 8 9 10 11 12;
1 2 3 4 5 6 7 8 9 10 11 12;
1 2 3 4 5 6 7 8 9 10 11 12;
1 2 3 4 5 6 7 8 9 10 11 12;
1 2 3 4 5 6 7 8 9 10 11 12;
1 2 3 4 5 6 7 8 9 10 11 12
];
% Build an index to even rows:
idx_even = mod(1:size(A,2),2) == 0;
% Store the even rows of the matrix in a saparate variable:
A_even = A(:,idx_even);
% Delete the even rows from the original matrix:
A(:,idx_even) = [];
% Append the even rows to the remaining (odd) rows of the original matrix:
A = [A; A_even];
输出:
A =
1 3 5 7 9 11
1 3 5 7 9 11
1 3 5 7 9 11
1 3 5 7 9 11
1 3 5 7 9 11
1 3 5 7 9 11
2 4 6 8 10 12
2 4 6 8 10 12
2 4 6 8 10 12
2 4 6 8 10 12
2 4 6 8 10 12
2 4 6 8 10 12