在单个语句中声明多维数组

Vik*_*tor 4 matlab matrix multidimensional-array

假设我想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] ] ]
Run Code Online (Sandbox Code Playgroud)

gno*_*ice 6

所述并置运算符[]将只在2个维度工作,像[a b]沿水平方向串联或[a; b]垂直串联.要创建具有更高尺寸的矩阵,您可以使用该reshape函数,或初始化所需大小的矩阵,然后用您的值填充它.例如,您可以这样做:

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

或这个:

A = zeros(3, 4, 4);  % Preallocate the matrix
A(:) = [...];        % Where "..." is what you have above
Run Code Online (Sandbox Code Playgroud)


Eit*_*n T 6

您可以使用cat沿第三维"分层"二维矩阵,例如:

A = cat(3, ones(4), 2*ones(4), 3*ones(4));
Run Code Online (Sandbox Code Playgroud)

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

CATLAB