目前,我可以使用以下代码找到矩阵 C
的最大值及其索引:
[max_C, imax] = max(C(:));
[ypeak, xpeak] = ind2sub(size(C),imax(1));
让我们调用矩阵的一个子集 C_sub
我想找到 C_sub
的最大值,但我也想知道 C
中那个最大值的索引。
看起来这应该是一个简单的问题,但它难倒了我。
感谢您的帮助!
最佳答案
假设 C_sub
是由
C_sub = C(rows,cols);
其中 rows
和 cols
是索引向量。将这些 rows
和 cols
向量保存到可以重用的地方(如果您还没有的话)。
[max_C_sub, ind_C_sub] = max(C_sub(:));
[ypeak_sub, xpeak_sub] = ind2sub(size(C_sub), ind_C_sub);
xpeak = cols(xpeak_sub);
ypeak = rows(ypeak_sub);
或者如果 rows
和/或 cols
是逻辑向量而不是索引向量,您可以使用 find
转换它们,然后按上述步骤进行。
rows_ind = find(rows_logical);
关于matlab - 在 MATLAB 中查找矩阵子集的最大值,同时保留完整矩阵的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4833326/