将元素偶数和奇数列重新排列成一个向量

时间:2017-09-03 19:52:06

标签: arrays matlab sorting matrix columnsorting

我有一个向量A8,其中有两列,这里有两行:

24.0192018449307    48.0192018449307
72.0576055347920    96.0576055347920

我想创建一个新的向量A9,以便我得到一列:

24.0192018449307
48.0192018449307
72.0576055347920
96.0576055347920

我尝试使用以下循环:

for j=1:4
   if mod(j,2)~=0
        A9(j)=A8(j,1);
   else 
        A9(j)=A8(j,2);
    end
end

显然,这不起作用,因为A8的大小为2x2,而不是1x4。

但我无法弄明白。

我尝试过使用两个循环:

for i=2;
  for j=1:4
      if mod(j,2)~=0
         A9(j)=A8(i,1);
      else
         A9(j)=A8(i,2);
      end
  end
end 

但是这让我A9只重复了第二行的两个元素。

如何重新排列此矩阵?

1 个答案:

答案 0 :(得分:4)

A =   [24.0192018449307  48.0192018449307;
       72.0576055347920  96.0576055347920];
B = A.';
B = B(:)

使用MATLAB基于列的事实,因此您可以转置矩阵,然后使用冒号运算符来获取单个向量。

顺便说一句,使用A8A9之类的变量名称真的很糟糕。就像动态变量命名一样糟糕。稍后你会通过给你的变量动态名称或不清楚这样的名字来遇到麻烦。