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

比如说我创立了一个81*81*81的三维数组A,如果我想取A(:,:,n)或A(:,n,:)或A(n,:,:)(n为小于81的正整数)的某一维度的数组矩阵,请问我这时应如... 比如说我创立了一个81*81*81的三维数组A,如果我想取A(:,:,n)或A(:,n,:)或A(n,:,:)(n为小于81的正整数)的某一维度的数组矩阵,请问我这时应如何操作呢? 展开
 我来答
帐号已注销
2021-01-02 · TA获得超过77万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:164万
展开全部

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 个字节 

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

qingningleyun
推荐于2018-10-21 · TA获得超过5853个赞
知道大有可为答主
回答量:2991
采纳率:30%
帮助的人:3038万
展开全部
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);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鹏二李
2015-08-01 · TA获得超过634个赞
知道小有建树答主
回答量:390
采纳率:0%
帮助的人:84.9万
展开全部
举个例子,你看看就明白了
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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
CHQIC
2015-08-16 · TA获得超过781个赞
知道小有建树答主
回答量:1362
采纳率:50%
帮助的人:445万
展开全部
三维是空间,二维是平面,转换过来要舍去一个轴向的数据,如三维:n{x,y,z}转二维那只有n
{x,y}或,n{x,z}或n{y,z}这要看你取哪个面了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
墨迹莫生
2019-04-16
知道答主
回答量:3
采纳率:0%
帮助的人:2284
展开全部
data=[A(:,:,1) A(:,:,2) A(:,:,3)...A(:,:,81) ];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式