【问题标题】:Normalization of 2D array二维数组的归一化
【发布时间】:2016-02-13 21:58:01
【问题描述】:

我有一个尺寸为 365x28(即 365 行和 28 列)的二维矩阵。我正在尝试使用以下代码对其进行规范化:

public static void main(String args[]) throws Exception {
    double[][] X = new double [365][28];
    double[][] X_min = new double [1][28];
    double[][] X_max = new double [1][28];

    double[][] X_norm = null;

    X_norm = normalize(X, X_min, X_max);// error in this line

public static double[][] normalize(double[][] ip_matrix, double[][] min_bound, double[][] max_bound)
{

    double[][] mat1 = ip_matrix;

    double[][] norm = new double[mat1.length][mat1[0].length];

    for (int i = 0; i < mat1.length; i++)
    {
        for (int j = 0; j <= mat1[i].length; j++)
        {
                norm[i][j] = (mat1[i][j] - min_bound[i][j] / (max_bound[i][j] - min_bound[i][j]));// error in this line
        }
    }

    return norm;

}           
}

但是当我运行它时,我得到一个索引错误。我了解 min_bound[i​​][j] 和 max_bound[i​​][j] 有问题。但我不知道如何纠正这一点。谁能帮我解决这个问题?提前致谢。

Error: exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1

【问题讨论】:

  • 如果您发布您收到的完整错误信息将会很有帮助。
  • 是的..我现在将编辑它。
  • 这段代码给了我一个 'ArrayIndexOutOfBoundsException: 28`

标签: java arrays normalization


【解决方案1】:

如果你仔细想想,你的问题就很明显了。记住数组从 0 开始索引。 因此,在第一个 for 循环中使用 var int "i" 进行规范化的方法中,它上升到 365,因为您检查了 2D 数组 X 的长度,其中 min_bound 和 max_bound 的大小只有 1 和 28。想想

假设 min_bound 和 max_bound 总是 [1][(some value)]

for (int i = 0; i < mat1.length - 1; i++) {
            for (int j = 0; j <= mat1[i].length - 1; j++) {
                norm[i][j] = (mat1[i][j] - min_bound[0][j]
                        / (max_bound[0][j] - min_bound[0][j]));// error in this
                // line
            }
        }

【讨论】:

    【解决方案2】:
    for (int i = 0; i < mat1.length; i++)
    

    我去365,你打电话

    norm[i][j] = (mat1[i][j] - min_bound[i][j] / (max_bound[i][j] - min_bound[i][j]));
    

    其中 min_bound 为 1x28

    因此,您会得到 indexoutofbounds 异常

    【讨论】:

      猜你喜欢
      • 2020-10-28
      • 1970-01-01
      • 2017-07-31
      • 2014-02-17
      • 1970-01-01
      • 2013-01-01
      • 2018-08-02
      • 1970-01-01
      相关资源
      最近更新 更多