2013-02-28 27 views
3

我想問一個關於Matlab程序的問題。如何通過Matlab程序將1D轉換爲2D

我有矢量a

a = [1 2 3 4 5 6 7 8 9 10 11 12]; 

我想矢量a轉換爲2D陣列。通常情況下,我使用此代碼進行轉換。

m =1; 
for i=1:4 
    for j=1:3 
     b(i,j) = a(m); 
     m=m+1; 
    end 
end 

然後b是二維矩陣。

b = 

    1  2  3 
    4  5  6 
    7  8  9 
    10 11 12 

任何人都有一個想法,不用循環就可以將1D轉換爲2D。

謝謝,

回答

15

檢查出reshape功能和幫助頁面。

特別地,

B = reshape(A,m,n) 

返回m -by- n矩陣B其元素採取逐列從A。如果A沒有m*n元素,則會產生錯誤。

請注意,它是列式的,所以我建議你製作一個3行4列的矩陣,然後將它放在一邊(A.'將採用矩陣的轉置)。

+0

謝謝你,數學咖啡 你的答案是非常有幫助的。 – 2013-02-28 01:53:25