将偶数列和奇数列的元素重新排列到一个向量中

Rearrange elements even and odd columns into one vector

我有一个包含两列的向量 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 只重复了第二行的两个元素。

如何重新排列这个矩阵?

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

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

顺便说一句,使用像 A8A9 这样的变量名真的很难闻。像动态变量命名不好。给你的变量动态名称,或者像这样不明确的名称,你以后 运行 会遇到很多麻烦。