2011-03-18 122 views
3

比方说,我想创建一个矩阵A尺寸为3×4×4与单个语句(一个平等,没有任何串联),像这样:声明在一个声明多维数组

%// This is one continuous row 
A = [ [ [3 3 4 4], [8 11 8 7], [4 4 6 7], [4 7 6 6] ]; ... 
     [ [3 2 4 2], [9 6 4 12], [4 3 3 4], [5 10 7 3] ]; ... 
     [ [2 2 1 2], [3 3 3 2], [2 2 2 2], [3 3 3 3] ] ] 

回答

6

concatenation operator []只能在2个维度上工作,如水平连接的或垂直连接的[a; b]。要创建matrices with higher dimensions,您可以使用reshape函数,或初始化所需大小的矩阵,然后用您的值填充它。例如,你可以这样做:

A = reshape([...], [3 4 4]); % Where "..." is what you have above 

或者这样:

A = zeros(3, 4, 4); % Preallocate the matrix 
A(:) = [...];  % Where "..." is what you have above 
+0

第二个就是我所做的。非常感谢你 – Viktor 2011-03-18 17:47:07

6

您可以使用cat沿着第三维 “层” 2-d矩阵,例如:

A = cat(3, ones(4), 2*ones(4), 3*ones(4)); 

从技术上讲,这是连接,但它仍然只有一个任务。

CATLAB