我有一个矩阵M,它是 a 29 x 18 double
,如下所示:
1 1 1 ...
2 1 1 ...
3 1 2 ...
2 2 2 ...
2 1 3 ...
3 1 3 ...
1 3 3 ...
...
对于M 中每对可能的两列,我想计算两列之间同一行的值相同的次数。取柱1和2,例如,在同一行的倍的值的数量是相同的是2由于M(1,1) = M(1,2)
和M(4,1) = M(4,2)
。由于每列与总列数(包括其自身)中的每一个配对,因此该计算对每列重复 18 次。因此,输出(称为N)将是 18 x 18 矩阵,每个值表示原始两个对应列中同一行的值相同的实例数。像这样的东西
29 4 5 3 ...
4 29 6 0 ...
5 6 29 7 ...
...
由于N(2,1) = 4
,这将表明第1列和第2列矩阵M具有同一行的 4 个匹配值。
我该怎么做呢?
你可以像这样做一个双循环:
result = zeros(18);
for i = 1:18
for j = 1:18
result(i,j) = nnz(M(:,i) == M(:,j));
end
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句