附加顺序列

Append sequential columns

我有一个大小为 50 x 100 的数组。我想做的是将第二列附加到第一列,第四列附加到第三列,第六列附加到第五列等等...这样我有一个 100 x 50 矩阵。以下示例显示了我正在尝试做的事情

1 2 3 4 变成 1 3 等等 5 6 7 8 5 7 2 4 6 8

我找了一个类似的问题,但没找到

这是一个小例子:

% 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