Minkowski距离和pdist

时间:2014-01-07 12:55:49

标签: matlab distance pdist

可以找到Minkowski的距离方程here

如果我们想要计算MATLAB中的Minkowski距离,我想我们可以做以下事情(如果我错了,请纠正我):

dist=pdist([x(i);y(j)],'minkowski');

到此为止,上述命令将执行链接中显示的等式。

现在,对于Minkowski的距离,我想添加此部分|-m(i)|^p,其中m(i)是有价值的。

我看到了pdist源代码,但是,想问一下,如何通过添加这个简单的部分来修改Minkowski的距离,可以在pdist代码中,也可以从调用代码中添加(我认为我们可能不得不对参数做一些改变。)

感谢。

1 个答案:

答案 0 :(得分:2)

我认为这可以满足您的需求:定义自定义距离函数并将其用作pdist的参数:

p = 2;
fun = @(x,y) sum(abs(x-y).^p + abs(m(i)).^p ).^(1/p);
pdist([x(i);y(j)],fun)

或直接使用

sum(abs(x(i)-y(j)).^p + abs(m(i)).^p ).^(1/p)

我假设ij只是贯穿xy元素的索引。