2011-11-26 91 views
4

可能重複:
Matlab: How to create a 3D matrix?如何在matlab中創建3D數組?

我有2個向量如下:

A= 5 x 10 (5 rows, 10 column) 
B= 5 x 6 (5 rows , 6 column) 

如何創建一個三維陣列,這意味着5 x 10 x 6,但不能用零填充?

+0

實際上,矩陣B的列必須是第三維的值 – user1066576

+0

您無法按照您想要的方式從矢量創建3D矩陣。你的矢量只有'50 + 30 = 80'元素,而你描述的3D矩陣有'300'元素。 – abcd

+0

emmm,讓我描述一下,陣列A和B中的行代表圖像名稱1到5,所以在陣列A的第1行中表示與圖像1相關的10個值和陣列B的第1行有另一個6值表示相同的圖像,那麼我怎麼能把所有這些放在3D數組中? – user1066576

回答

1

我不認爲3D矩陣是你想要的。我建議下列選項:

選項1.細胞陣列

>> A = rand(5,10); B = rand(5,6); 
>> {A, B} 

ans = 

    [5x10 double] [5x6 double] 

選項2.細胞基質

>> clear C; for i=1:5, C{i,1} = A(i,:)'; C{i,2} = B(i,:)'; end; C 

C = 

    [10x1 double] [6x1 double] 
    [10x1 double] [6x1 double] 
    [10x1 double] [6x1 double] 
    [10x1 double] [6x1 double] 
    [10x1 double] [6x1 double] 

選項3串聯陣列,並抵靠零件然後簡單地索引你需要。

>> C = [A,B]; size(C) 

ans = 

    5 16 

選項4.使用結構數組

>> clear C; for i=1:5, C(i).A = A(i,:)'; C(i).B = B(i,:)'; end; C 

C = 

1x5 struct array with fields: 
    A 
    B 

如果你認爲一個三維矩陣作爲一個立方體,和二維矩陣爲正方形,你應該看到你正在嘗試做的是從兩個方塊創建一個立方體,使立方體的體積爲空(以及其他四面)。