MATLAB's custom distance function example for two matrices.

5 ビュー (過去 30 日間)
hello_world
hello_world 2018 年 7 月 22 日
回答済み: Viren Gupta 2018 年 8 月 7 日
How does MATLAB's @distfun work for two matrices. Suppose:
X1 = rand(5);
X2 = rand(3);
How to compute the KL-Divergence between X1 and X2 using @distfun? I do not see any non trivial distance example in manual. Please advise.
  2 件のコメント
Viren Gupta
Viren Gupta 2018 年 8 月 3 日
I checked the documentation of @distfun here and it says that if Z1 and Z2 are 2 inputs to the function, then Z1 need to have a single row.
Apart from this how are you trying to find KL divergence between 2 vectors of different length?
hello_world
hello_world 2018 年 8 月 3 日
@Viren Gupta: I also followed document and trivial example given there. Can you show me a working example for non trivial cases, such as, KL Divergence which depends on two probability distributions P and Q. So, you may generate two random distributions.

サインインしてコメントする。

採用された回答

Viren Gupta
Viren Gupta 2018 年 8 月 7 日
Here is a working example if you want to find KL divergence between 2 vectors.
z1=rand(1,5);
z2=rand(1,5);
X=[z1;z2];
fn=@distfun;
d=pdist(X,fn);
function f = distfun(x1,x2)
l=size(x1,2);
KL=0;
for i=1:l
KL=KL+x2(i)*log(x2(i)/x1(i));
end
f=KL;
end
Hope this helps.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDimensionality Reduction and Feature Extraction についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by