簡體   English   中英

Matlab:修改3D單元矩陣的每個立方體

[英]Matlab: modify each cube of 3D cell matrix

我使用mat2cell創建了一個12 x 13 x 5的單元格矩陣,其中每個單元格包含一個29 x 29 x 29的立方體。 如何生成僅包含每個29 x 29 x 29立方體的中心21 x 21 x 21立方體的新3D單元矩陣? 也就是說,因此新矩陣仍然是12 x 13 x 5,但每個矩陣都包含21 x 21 x 21原始立方體的中央體素?

要裁剪單個塊,可以使用一個簡單的索引表達式:

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

如果您希望獲得性能更好的解決方案,建議您切換到多維矩陣:

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,:);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM