我对Java的经验非常有限,而且我无法实现从其他来源获得的一堆类。
我正在尝试使用以下Java包中的calculateMutualInformation():https://github.com/Craigacp/JavaMI
关联的java文档描述了如下方法:
public static double calculateMutualInformation(double[] firstVector,
double[] secondVector)
如果您想查看doc文件,请访问:http://www.cs.man.ac.uk/~pococka4/JavaMI/index.html 我正在尝试使用DoubleTrouble.java中的以下代码将两个数组传递给此函数:
package JavaMI;
public class DoubleTrouble {
public static double calculateMutualInformation()
{
double[] firstVector = {0, 1, 2, 0, 1, 0, 2, 0, 0, 0, 2, 0, 2, 0, 0, 1, 0};
double[] secondVector = {1, 2, 0, 1, 2, 1, 0, 1, 2, 1, 0, 1, 0, 1, 2, 0, 2};
//return ??
}
}
以上数据只是占位符,但是,我似乎不明白如何调用此方法。我得到一个丢失的返回错误,我尝试放入的任何类型的return语句都会出错(大多数情况下我错过了“.class”)。我还尝试将变量作为方法的参数,但这往往会产生更多错误。
这个方法或男人(我)有什么问题吗?我也试过从包中调用其他方法,比如MutualInformation(),再次无济于事。另外,我应该提一下,我编译了JavaMI包中的所有java文件;不确定是否有必要。
答案 0 :(得分:0)
public static double calculateMutualInformation()
public
:表示方法可以从任何地方看到static
:表示无需调用该方法的实例,即允许DoubleTrouble.calculateMutualInformation()
double
:表示该方法返回double
另一个例子:
// returns a double
public double sum(double a, double b) { return a+b; }
// doesn't return anything
public void something(double a, double b) { System.out.println(a+b); }
另见this tutorial方法定义
答案 1 :(得分:0)
您尝试实施的方法必须接受2个参数:
double[] firstVector
和double[] secondVectory
您目前正在做的是创建这两个变量 - 这是错误的。您的方法接收作为参数,而不是在您的方法中创建它们,然后使用它们来计算并返回一些double
值,如下所示:
double mutualInformation = ... // compute for firstVector and secondVector
return mutualInformation;
您的方法定义应该更像这样:
public static double calculateMutualInformation(double[] firstVector, double[] secondVector) {
double mutualInfo = ... // compute from firstVector and secondVector
return mutualInfo; // returning type double as method head states
}