img是单色通道的图像。 img_temp的定义如下:
img_temp = zeros(size(img,1), size(img,2), N);
其中N是整数。因此,img_temp的每个条目都包含N个值。
在Matlab中表达以下操作的简洁方法是什么?
for x=1:size(img,1)
for y=1:size(img,2)
img(x,y,1) = find(img_temp(x,y,:)==max(img_temp(x,y,:)));
end
end
我想找到数组img_temp(x,y,:)中最大值的索引,并将其存储在img中的相应位置,即img(x,y,1)
答案 0 :(得分:2)
max函数可以沿任何维度运行,并返回索引和最大值。在您的情况下,您只关心索引并希望它存储在img(:,:,1)
中,所以请尝试:
[~, img(:,:,1)] = max(img_temp, [], 3);