附加连续列

时间:2018-01-24 21:46:09

标签: matlab append reshape

我有一个50 x 100的数组大小。我想做的是将第二列附加到第一列,第四列附加到第三列,第六列到第5列等等...所以我有一个100 x 50矩阵。以下示例显示了我要执行的操作

1 2 3 4变为1 3,依此类推 5 6 7 8 5 7                 2 4                 6 8

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

1 个答案:

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