【发布时间】:2016-05-19 10:00:06
【问题描述】:
在 MATLAB 代码中,我使用了 kullback_leibler_divergence 相异函数,该函数位于 here。
我有一个矩阵A,我使用下载的函数计算相异矩阵。
理论上,如果我计算一下
clear
A = rand(132,6); % input matrix
diss_mat = pdist(A,'@kullback_leibler_divergence'); % calculate the dissimilarity
square_diss_mat = squareform(diss_mat); % I put the dissimilarities in a square matrix
one_dist = pdist2(A(1,:),A,@kullback_leibler_divergence);
我应该让square_diss_mat 的第一行等于one_dist,但我不是。
如果我使用欧几里得距离,我会得到它:
diss_mat = pdist(A);
square_diss_mat = squareform(diss_mat);
one_dist = pdist2(A(1,:),A);
你能告诉我为什么吗?
【问题讨论】: