[英]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.