gpt4 book ai didi

java - 如何将二维数组赋值给一维数组?

转载 作者:行者123 更新时间:2023-11-30 07:53:41 26 4
gpt4 key购买 nike

我正在使用 apache commons-math 库来计算回归参数。如图第2行和第3行所示,一个二维数组被分配给单个数组。当我使用相同的代码时,

我收到错误:

"Type mismatch error:cannot convert from double [][] to double []" in 3rd line but not for 2nd line.

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);

为什么会发生这种情况?这是如何运作的?

More details on OLS regression are given here

最佳答案

情况1:

   double[] y = new double[]{11.0, 12.0, 13.0, 14.0, 15.0, 16.0};

您正在创建一个一维数组,并立即插入值。工作正常

情况2:

double[] x = new double[6][];

您正在声明一个一维数组并尝试分配一个二维数组。这是非法的。

将声明更改为 2D 或使用 1D 初始化

有效声明将是

double[] x = new double[6];  // 1D

double[][] x = new double[6][lenghtYouWant]; //2D

稍后看到插入后,您需要一个二维数组。要成功编译以下代码,您需要将声明更改为

double[][] x = new double[6][]; 

关于java - 如何将二维数组赋值给一维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32985771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com