我正在使用ApacheCommons-数学库来计算回归参数。如图2和第3行所示,2d数组分配给单个数组。当我使用相同的代码时,
我正在犯错误:
“类型错配错误:不能转换从双到双[]”在第三行,但不是第二行。
OLSMultipleLinearRegression regression = new OLSMultipleLinearRegression();
double[] y = new double[]{11.0, 12.0, 13.0, 14.0, 15.0, 16.0};
double[] x = new double[6][];
x[0] = new double[]{0, 0, 0, 0, 0};
x[1] = new double[]{2.0, 0, 0, 0, 0};
x[2] = new double[]{0, 3.0, 0, 0, 0};
x[3] = new double[]{0, 0, 4.0, 0, 0};
x[4] = new double[]{0, 0, 0, 5.0, 0};
x[5] = new double[]{0, 0, 0, 0, 6.0};
regression.newSample(y, x);为什么会发生这种事?这是怎么回事?
这里给出了OLS回归的更多细节。
发布于 2015-10-07 07:07:27
案例1 :
double[] y = new double[]{11.0, 12.0, 13.0, 14.0, 15.0, 16.0};您正在创建一个一维数组,并立即插入它的值。工作很好
案例2 :
double[] x = new double[6][];您正在声明一个一维数组,并试图分配一个2D数组。这是非法的。
要么将声明更改为2D,要么用1D初始化
有效声明将是
double[] x = new double[6]; // 1D或
double[][] x = new double[6][lenghtYouWant]; //2D在看到后面的插入之后,您需要一个2D数组。要成功编译以下代码,需要将delcaration更改为
double[][] x = new double[6][]; https://stackoverflow.com/questions/32985771
复制相似问题