我需要在 MATLAB 中找到矩阵中每一行中最大元素的索引。 有点像
[~,indexes] = maxValues = max(p_y_x,[],2);
工作正常,但我需要获取最后一个索引(当有多个索引具有最大值时)。 现在我有这样的东西:
N=size(p_y_x,1);
maxValues = max(p_y_x,[],2);
indexes=zeros(1,N);
for n=1:N
indexes(n)=find(p_y_x(n,:)==maxValues(n),1,'last');
end
这很复杂而且效率不高(因为 for
循环)。
我怀疑必须以这种方式完成一些微不足道的事情。有没有更优的方案?
最佳答案
如果水平翻转数组然后更正索引,则查找第一次出现的相同代码适用于最后一次出现:
[~, indexes] = max(fliplr(p_y_x),[],2);
indexes = size(p_y_x,2)-indexes+1;
关于matlab - 每行中最大值元素的索引(最后一个索引),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36238633/