我在名为mask
(1000x1000x1000 uint16
)的Matlab 3D数组中对实体对象进行了二进制分割。我需要提取顶表面,即每个列向量的第一个非零元素(在第二维和第三维上)。我可以使用以下代码段进行此操作:
s = zeros(1000,1000);
for y=1:1000
for x=1:1000
s(x,y) = find(mask(:,x,y),1);
end
end
有没有一种方法可以对代码进行矢量化处理并避免for
循环?