运算符 - 对于参数类型 double[] 未定义
operator - undefined for argument types double[]
我正在从事一个处理大量数据矩阵的项目。当我尝试对其进行标准化以进行计算时,出现错误
operator - is undefined for argument types double[]
我的代码如下:
import Jama.*;
public static Matrix normalize(Matrix ip_matrix, double[][] min_bound, double[][] max_bound)
{
Matrix mat = ip_matrix.transpose();
double[][] mat1 = mat.getArray(); // getting matrix as an array to perfom the computation.
int nb_input = mat1[0].length;
double[][] norm = new double[mat1[0].length][mat1[1].length]; // Initialize a default array to store the output, in the required dimension.
for (int i = 0; i <= nb_input; i++)
{
norm[i] = (mat1[i] - min_bound[i] / (max_bound[i] - min_bound[i])); //The line where i get the error.
}
norm = norm.getMatrix();
return norm;
}
我基本上是一个 python 程序员,同样的逻辑在我的 python 代码中工作得很好。我在 python 中使用 numpy。并且正在 java 中使用 JAMA 库。
我只是 java 的初学者,所以请任何指导将不胜感激。
您正在创建一个二维数组,也就是矩阵。在 Java 中,并没有真正的二维数组。您在这里所做的是创建一个数组 double
s.
因此,当您使用 []
运算符访问数组时,您实际上得到的是 double
的一维数组。当您使用 [][]
访问它时,您会得到一个 double
。所以这就是你得到错误的原因。您使用单个 []
访问它,然后对它们进行减法。
我正在从事一个处理大量数据矩阵的项目。当我尝试对其进行标准化以进行计算时,出现错误
operator - is undefined for argument types double[]
我的代码如下:
import Jama.*;
public static Matrix normalize(Matrix ip_matrix, double[][] min_bound, double[][] max_bound)
{
Matrix mat = ip_matrix.transpose();
double[][] mat1 = mat.getArray(); // getting matrix as an array to perfom the computation.
int nb_input = mat1[0].length;
double[][] norm = new double[mat1[0].length][mat1[1].length]; // Initialize a default array to store the output, in the required dimension.
for (int i = 0; i <= nb_input; i++)
{
norm[i] = (mat1[i] - min_bound[i] / (max_bound[i] - min_bound[i])); //The line where i get the error.
}
norm = norm.getMatrix();
return norm;
}
我基本上是一个 python 程序员,同样的逻辑在我的 python 代码中工作得很好。我在 python 中使用 numpy。并且正在 java 中使用 JAMA 库。
我只是 java 的初学者,所以请任何指导将不胜感激。
您正在创建一个二维数组,也就是矩阵。在 Java 中,并没有真正的二维数组。您在这里所做的是创建一个数组 double
s.
因此,当您使用 []
运算符访问数组时,您实际上得到的是 double
的一维数组。当您使用 [][]
访问它时,您会得到一个 double
。所以这就是你得到错误的原因。您使用单个 []
访问它,然后对它们进行减法。