matlab三维数组如何转成二维数组?

2024-11-01 03:30:42
有5个网友回答
网友(1):

data=[A(:,:,1) A(:,:,2) A(:,:,3)...A(:,:,81) ];

在定义的时候,抽取元素形式为A=B(:,:,i)。matlab中三维数组顺序是:行、列、页。二维数组只有行、列。如果两只之间赋值,有一个维数缩减问题需要注意。

前者可以缩减为二维,而后者不能缩减为二维的主要原因就在于,三维矩阵中,第一维度代表行,第二维度代表列,第三维度代表页,当第三维度为1时,代表只有1页,自然缩减为二维。当第一维度为1时,代表只有一行,但是每页都有。

扩展资料:

二维数组A[m][n],这是一个m行,n列的二维数组。设a[p][q]为A的第一个元素,即二维数组的行下标从p到m+p,列下标从q到n+q,按“行优先顺序”存储时则元素a[i][j]的地址计算为:

LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) * n + (j − q)) * t

按“列优先顺序”存储时,地址计算为:

LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) * m + (i − p)) * t

存放该数组至少需要的单元数为(m-p+1) * (n-q+1) * t 个字节 

参考资料来源:百度百科-二维数组

网友(2):

A = rand(81,81,81);
n = 20;
A1 = A(:,:,n); % 81*81 二维
A2 = A(:,n,:); % 81*1*81 三维
A3 = A(n,:,:); % 1*81*81 三维

% 将三维转为 81*81 二维
A22 = reshape(A2,81,81);
A32 = reshape(A3,81,81);

网友(3):

举个例子,你看看就明白了
A = rand(81,81,81);
n = 20;
A1 = A(:,:,n); % 81*81 二维
A2 = A(:,n,:); % 81*1*81 三维
A3 = A(n,:,:); % 1*81*81 三维

% 将三维转为 81*81 二维
A22 = reshape(A2,81,81);
A32 = reshape(A3,81,81);

网友(4):

三维是空间,二维是平面,转换过来要舍去一个轴向的数据,如三维:n{x,y,z}转二维那只有n
{x,y}或,n{x,z}或n{y,z}这要看你取哪个面了

网友(5):

data=[A(:,:,1) A(:,:,2) A(:,:,3)...A(:,:,81) ];