2011-11-26 109 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 

如果你认为一个三维矩阵作为一个立方体,和二维矩阵为正方形,你应该看到你正在尝试做的是从两个方块创建一个立方体,使立方体的体积为空(以及其他四面)。