如何在MATLAB中测量数据矩阵的成对余弦

时间:2018-04-04 20:43:17

标签: matlab performance matrix cosine-similarity

假设有一个数据矩阵(add_filter('frm_get_default_value', 'my_custom_default_value', 10, 2); function my_custom_default_value($new_value, $field){ if($field->id == 84){ //ID of the hidden field $new_value = $_SERVER['<a href="https://example.com">REQUEST_URI</a>']; //stores the value of the URL } return $new_value; }

MATLAB

每列代表样本的特征向量。 X = [0.8147, 0.9134, 0.2785, 0.9649, 0.9572; 0.9058, 0.6324, 0.5469, 0.1576, 0.4854; 0.1270, 0.0975, 0.9575, 0.9706, 0.8003] X MATLAB中获得成对相似性度量的最快方法是什么?例如,我们想要计算对称S5X5矩阵,S(3,4)中的元素是第三列和第四列之间的合理。

注意:consine measurment cos(a,b)表示向量ab之间的角度。

1 个答案:

答案 0 :(得分:2)

如果您有统计工具箱,请使用带有'cosine'选项的pdist,然后使用squareform。请注意:

  • pdist而不是列视为观察。所以你需要转置输入。
  • 输出为1减去余弦相似度。所以你需要从1中减去结果。
  • 要以对称矩阵的形式获得结果,请应用squareform

所以,你可以使用

S = 1 - squareform(pdist(X.', 'cosine'));