public HashMap<String, double[][]> GradientDescent(double[][] ratingData_norm, double[][] ratingData_binary, double[][] theta, double[][] X, int iter, double alpha, double lambda)
{
HashMap<String, double[][]> result= new HashMap<String, double[][]>();
double[][] theta_tran=new *double[theta[0].length][theta.length]();*
double[][] theta_grad=new *double[theta.length][theta[0].length]();*
-------
---
--
--}
我在声明2D双数组时遇到错误。 键入不匹配错误。无法将double [] [] []转换为double [] [] 任何人都可以告诉我在哪里弄错了以及如何解决它?
非常感谢提前!!!!
答案 0 :(得分:1)
我修复了你发布的代码,所以我可以尝试编译它。
import java.util.*;
public class Test {
public HashMap<String, double[][]> GradientDescent(double[][] ratingData_norm, double[][] ratingData_binary, double[][] theta, double[][] X, int iter, double alpha, double lambda)
{
HashMap<String, double[][]> result= new HashMap<String, double[][]>();
double[][] theta_tran=new double[theta[0].length][theta.length]();
double[][] theta_grad=new double[theta.length][theta[0].length]();
}
}
然后我编译了它:
> javac -d . Test.java
Test.java:9: error: ';' expected
double[][] theta_tran=new double[theta[0].length][theta.length]();
^
Test.java:10: error: ';' expected
double[][] theta_grad=new double[theta.length][theta[0].length]();
^
2 errors
下次你问一个问题时,你应该发布最少量的可以编译的代码,并且可以证明你的问题。
您不应以任何奇怪的方式修改代码以指出问题所在。我们不知道这些星号是否是您代码的实际部分。如果您必须添加内容,请使用注释。
并且您应该包含您收到的错误消息。错误消息非常清楚你做错了什么。
这可以编译:
import java.util.*;
public class Test {
public HashMap<String, double[][]> GradientDescent(double[][] ratingData_norm, double[][] ratingData_binary, double[][] theta, double[][] X, int iter, double alpha, double lambda)
{
HashMap<String, double[][]> result= new HashMap<String, double[][]>();
// No brackets needed for array instantiation
double[][] theta_tran=new double[theta[0].length][theta.length];
double[][] theta_grad=new double[theta.length][theta[0].length];
return null;
}
}
这不是你描述的错误。如果您确实存在类型不匹配的问题,那么您发布的代码中就不存在任何类型。