【发布时间】:2016-11-27 14:24:42
【问题描述】:
我有一个矩阵,它(在每个输入 (i,j) 中)表示 (i,j) 对的相关性。 我想要具有最大相关性的 k 对的索引。 有任何想法吗? 我的矩阵可能会变大,所以我正在寻找 matlabs 优雅的数组/矩阵命令 (如果有的话)
谢谢!
备注:如果这不是这个问题的正确位置,我会很感激获得另一个论坛的链接或在此论坛中对类似问题的答案
【问题讨论】:
标签: matlab
我有一个矩阵,它(在每个输入 (i,j) 中)表示 (i,j) 对的相关性。 我想要具有最大相关性的 k 对的索引。 有任何想法吗? 我的矩阵可能会变大,所以我正在寻找 matlabs 优雅的数组/矩阵命令 (如果有的话)
谢谢!
备注:如果这不是这个问题的正确位置,我会很感激获得另一个论坛的链接或在此论坛中对类似问题的答案
【问题讨论】:
标签: matlab
这应该可以解决问题:
function [values,i,j] = maxi(A,n)
[a, linIdx] = sort(A(:),'descend');
values = a(1:n);
[i,j] = ind2sub(size(A),linIdx(1:n));
其中输入 A 是一个矩阵,n 是您想要返回的 (i,j) 对的数量。输出当然是 n 个最大值及其对应的索引。
我希望这会有所帮助。
注意:如果A包含很多零元素,考虑使用稀疏矩阵来减少计算时间。
【讨论】: