finding n maximum elements in a matrix

Hi all, I have a symmetrical matrix of size mxm with diagonal elements equal to one. The values range [-1,1]. I would like to find five off the diagonal maximum elements in that matrix and return col and row indices. So far I have the following. It does not really work for values < 0. Any suggestions:
corrMat=rho - eye(size(rho));
A=corrMat;
sortedValues = unique(A(:));
maxValues = sortedValues(end-4:end);

3 个评论

What aspect of it doesn't work for negative numbers? You mean you want -1 to be considered greater than -0.5?
Also, do you want to select both the above- and below-diagonal instance of the maximal elements? Since the matrix is symmetric, there will always be pairs.
If you want to base "maximum" on magnitude, then perhaps insert an
A = abs(corrMat); % A = corrMat;
but this will fail with the unique function if there is an equivalent negative/positive value.

请先登录,再进行评论。

回答(0 个)

类别

帮助中心File Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by