【问题标题】:calculate similarity between two vectors计算两个向量之间的相似度
【发布时间】:2017-08-22 07:15:27
【问题描述】:

我有一个矩阵 M,它是一个 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 列为例,由于M(1,1) = M(1,2)M(4,1) = M(4,2),同一行的值相同的次数为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个相同行的匹配值。

我该怎么做?

【问题讨论】:

    标签: matlab matrix similarity


    【解决方案1】:

    你可以像这样做一个双循环:

    result = zeros(18);
    for i = 1:18
        for j = 1:18
            result(i,j) = nnz(M(:,i) == M(:,j));
        end
    end
    

    【讨论】:

      猜你喜欢
      • 2019-12-27
      • 1970-01-01
      • 2021-07-19
      • 2012-03-11
      • 2016-03-06
      • 2017-09-07
      • 1970-01-01
      相关资源
      最近更新 更多