2017-09-03 71 views
1

我有一个载体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刚刚在第二行重复的两个元素。

我该如何重新排列这个矩阵?

+0

如果使用两个for循环但不嵌套,该怎么办?在第一行中,您分配给A9第一行A9(i)= A8(0,i)的值。在第二个中,你用这种方式分配A9(i + 2)= A8(1,i) –

回答

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

使用的事实,MATLAB是基于列的,这样的话你可以转你的矩阵,然后使用冒号运算符来获得一个载体。

顺便说一下,使用变量名称如A8A9的气味真的很差。像动态变量命名不好。通过给你的变量赋予动态名称或者不明确的名字,你会在后面遇到大量麻烦。