【发布时间】:2015-11-16 14:02:23
【问题描述】:
我有一个 151-by-151 矩阵 A。这是一个相关矩阵,所以主对角线上有1s,主对角线上下有重复值。
我正在寻找一种方法来获取具有最低值的许多行的 n 的索引。
我要查找的行数固定为n,而n many rows 必须是唯一的。
所以,比如说:
n = 10
及数据如下
第 1 行的相关性最低(第 6 行/第 6 列),也是第三低的相关性(第 9 行/第 9 列)。
这意味着我找到了我需要的三行的索引:1、6 和 9。但是,我没有将第 1 行计算两次,因此我仍然需要找到另外 7 行的索引.
我已经尝试过这种方法
function [smallestNElements smallestNIdx] = getNElements(A, n)
[ASorted AIdx] = sort(A);
smallestNElements = ASorted(1:n);
smallestNIdx = AIdx(1:n);
end
我获得了here。但是,我认为这种方法从根本上是不适用的,因为它适用于向量。当我将它应用于我的二维矩阵时,它只给出第一列中最低值的索引。
最低是指绝对值最低,而不是“最接近零”。因此-0.9 低于-0.1,而-0.1 又低于0.05。
【问题讨论】:
-
您的统计分析目标是什么?
-
我的目标只是找出那些 n 很多人(相关矩阵中的每一行都是一个人),这些人彼此之间的相关性可能最低——或者更好的是,负相关性。
-
那你不需要成对的人吗?
-
你可能会发现这个功能很有用:de.mathworks.com/help/stats/tiedrank.html
-
@BillBokeey 是的,我们有成对的人。矩阵中的每个相关性都是通过考虑两个个体之间的配对数据而创建的。
标签: matlab