Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单java代码中的错误_Java - Fatal编程技术网

简单java代码中的错误

简单java代码中的错误,java,Java,我正在学习线性回归,我想实现它。我想在“data.txt”文本文件中获取有关线性回归数据的信息。我使用Scanner类读取文件。我还想把它们放在类变量中。当我使用“for循环”将它们放入变量时,我遇到了错误 这是错误信息 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at linearregression.LinearRegression.initFile(LinearRegression.j

我正在学习线性回归,我想实现它。我想在“data.txt”文本文件中获取有关线性回归数据的信息。我使用
Scanner
类读取文件。我还想把它们放在类变量中。当我使用“for循环”将它们放入变量时,我遇到了错误

这是错误信息

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
    at linearregression.LinearRegression.initFile(LinearRegression.java:35)
35 line is `y[i]=scan.nextInt();`
代码是

    private final double LEARNING_RATE=0.0001;

    private int num_TrainingSet;
    private int num_Features;

    private int[][] x;
    private int[] y;
    private double[] theta;

    private Scanner scan;

    public LinearRegression()
    {
        x = new int[num_TrainingSet][num_Features];
        y = new int[num_TrainingSet];
        theta = new double[num_Features+1];
    }

    public void initFile() throws FileNotFoundException
    {
        File file = new File("src/linearregression/data.txt");
        scan = new Scanner(file);
        num_TrainingSet = scan.nextInt();
        num_Features = scan.nextInt();
        for(int i=0;i<num_TrainingSet;i++)
        {
            y[i]=scan.nextInt();
        }
    }
private final double LEARNING_RATE=0.0001;
私人国际培训集;
私有int num_特性;
私有int[][]x;
私有int[]y;
私人双[]θ;
私人扫描仪扫描;
公共线性回归()
{
x=新整数[num_TrainingSet][num_Features];
y=新整数[num_TrainingSet];
θ=新的双[num_特征+1];
}
public void initFile()引发FileNotFoundException
{
File File=新文件(“src/linearregression/data.txt”);
扫描=新扫描仪(文件);
num_TrainingSet=scan.nextInt();
num_Features=scan.nextInt();

对于(int i=0;i您的构造函数为x和y数组分配内存:

    x = new int[num_TrainingSet][num_Features];
    y = new int[num_TrainingSet];
但此时,
num_TrainingSet
num_Features
都是0,因为您尚未实际初始化这些变量。因此,您在构造函数中分配的数组都是零长度的

相反,在用户给出输入后,在
initFile
方法中分配数组

    num_TrainingSet = scan.nextInt();
    num_Features = scan.nextInt();
    x = new int[num_TrainingSet][num_Features];
    y = new int[num_TrainingSet];

当应用程序要求您输入培训集的多条记录时,您是否插入了0?您的标题没有用处。请编辑它以反映问题。非常感谢我理解我的错误。更改后它会工作