2017-09-03 206 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的氣味真的很差。像動態變量命名不好。通過給你的變量賦予動態名稱或者不明確的名字,你會在後面遇到大量麻煩。