可以找到Minkowski的距离方程here。
如果我们想要计算MATLAB
中的Minkowski距离,我想我们可以做以下事情(如果我错了,请纠正我):
dist=pdist([x(i);y(j)],'minkowski');
到此为止,上述命令将执行链接中显示的等式。
现在,对于Minkowski的距离,我想添加此部分|-m(i)|^p
,其中m(i)
是有价值的。
我看到了pdist
源代码,但是,想问一下,如何通过添加这个简单的部分来修改Minkowski的距离,可以在pdist
代码中,也可以从调用代码中添加(我认为我们可能不得不对参数做一些改变。)
感谢。
答案 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)
我假设i
和j
只是贯穿x
和y
元素的索引。