【发布时间】:2016-07-16 19:09:03
【问题描述】:
我有下面的 java 代码,我用它来计算 Minkowski 距离,
class Minkowski {
public static void main( String [] arg){
int p=2;
double [] Mski = new double[5];
double [] a = { 1, 2, 3, 4,5};
double [] b = { 6,7,8,9,11};
System.out.println(Arrays.toString(Minkowski1(a,b,p);
}
public static double Minkowski1( double [] a , double [] b, int q)
{
double sum = 0;
for(int f = 0; f < a.length; f++){
sum += Math.pow( Math.abs(a[f] - b[f]),q );
}
return Math.pow(sum, 1.0 / q);
}
该代码与 Minkowski 距离 matlab 代码产生不同的结果:
for i=1 : 5
result2(i)=sum(abs(X(i)-Y(i)).^p).^(1/p)
end
the result in matlab is 5 5 5 5 6,and java one is not same
请给点建议
【问题讨论】:
-
我认为您应该更具体地了解结果的差异,即针对哪个测试用例。
-
如果您寻求帮助以使您的 matlab 代码正确,也许您应该明确地说出来。还有我们应该怎么知道 X,Y 是什么?