2013-05-10 24 views
0

img是单色通道的图像。 img_temp定义如下:什么是以下Matlab代码的简明表达式

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)

回答

2

max函数可以沿任意维度运行,并返回索引以及最大值。在你的情况下,你只关心索引,并希望它存储在img(:,:,1),所以试试这个:

[~, img(:,:,1)] = max(img_temp, [], 3); 
+0

非常感谢。这解决了我的问题。 – shapeare 2013-05-10 13:15:41

+0

@shapeare如果这个答案解决了你的问题,你应该考虑通过点击左边的复选标记来“接受”它。这不仅让其他人知道这个问题已经解决,而且还给了答案被接受的额外声望点的人。 – beaker 2013-05-11 15:40:55