matlab三维数组如何转成二维数组?
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 个字节
参考资料来源:百度百科-二维数组
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);
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);
{x,y}或,n{x,z}或n{y,z}这要看你取哪个面了
广告 您可能关注的内容 |