2015-05-23 105 views

回答

1

最佳方式:谷歌更多关于Matlab's cell array

的另一种方式:您可以创建3D(n×m×3)矩阵,即:m = zeros(n,m,3)

+0

谢谢。但是如果我使用m = 0(m,3),m(1,1)将给我0而不是(0 0 0),这就是我真正想要的。谢谢。 – Hong

+0

那么你应该使用单元格数组。使用3D技巧,您可以访问m(i,j,1)... m(i,j,3) – scmg

+0

以显示整个(0,0,0),然后您必须使用Matlab的第三个索引矢量化:'m(i,j,:)' – scmg

1

这是你的意思吗? 使用内置的功能零

例如

一个=零(N,M,P)

P = 3

1

您可以使用mat2cell

,但我会建议使用3D矩阵作为其他的答案表明

m = 5; 
n = 4; 
A = randi(50,n,m*3); 
out = mat2cell(A,ones(n,1),repmat(3,m,1)); 

输出:

>> out 

out = 

[1x3 double] [1x3 double] [1x3 double] [1x3 double] 
[1x3 double] [1x3 double] [1x3 double] [1x3 double] 
[1x3 double] [1x3 double] [1x3 double] [1x3 double] 
[1x3 double] [1x3 double] [1x3 double] [1x3 double] 
[1x3 double] [1x3 double] [1x3 double] [1x3 double] 

您可以用{}访问每一个元素是这样的:

>> out{1,1} 

ans = 

6 41 13 

用于创建空单元格,

>> out = cell(m,n) 

out = 

[] [] [] [] 
[] [] [] [] 
[] [] [] [] 
[] [] [] [] 
[] [] [] [] 
相关问题