首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab:修改每个三维单元矩阵的立方体

Matlab:修改每个三维单元矩阵的立方体
EN

Stack Overflow用户
提问于 2015-10-22 19:51:18
回答 1查看 42关注 0票数 0

我使用mat2cell创建了一个12x13x5单元矩阵,其中每个单元格包含一个29x29x29立方体。如何生成一个新的三维单元格矩阵,其中只包含每个29x29x29立方体的中心21x21x21立方体?也就是说,新的矩阵仍然是12x13x5,但是每个矩阵都包含一个2x21x21的原始立方体中心体素?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-22 20:20:50

要裁剪一个独立块,可以使用一个简单的索引表达式:

代码语言:javascript
复制
c=4 % cut of c rows on each side.
for ix=1:numel(X)
   X{ix}=X{ix}(1+c:end-c,1+c:end-c,1+c:end-c);
end

如果您想要一个性能更好的解决方案,我建议切换到多维矩阵:

代码语言:javascript
复制
c=4
Y=reshape(X,29,12,29,13,29,5);
%now the first block is squeeze(Y(:,1,:,1,:,1))
%now cut to smaller blocks:
Y=Y(1+c:end-c,:,1+c:end-c,:,1+c:end-c,:);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33289512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档