Java类中的RealMatrix对象

Java类中的RealMatrix对象,java,matrix,apache-commons-math,Java,Matrix,Apache Commons Math,似乎我无法在我的类中使用此Apache Commons数学库,因为当我尝试在构造函数中使用RealMatrix时,matrixSim上出现了意外的标记,如下所示: class vecGenUn { double[][] prevMat; RealMatrix matrixSim; //this is problematic int dataDim; int rowDim; double simVecMean; double simVecSD; double simV

似乎我无法在我的类中使用此Apache Commons数学库,因为当我尝试在构造函数中使用RealMatrix时,matrixSim上出现了意外的标记,如下所示:

class vecGenUn
{
  double[][] prevMat;
  RealMatrix matrixSim;  //this is problematic
  int dataDim;
  int rowDim;
  double simVecMean;
  double simVecSD;
  double simVecUn;
  double sum;

  vecGenUn (double[][] tempPM)
  {
    prevMat = tempSM;
    matrixSim = new Array2DRowRealMatrix(prevMat);  //and possibly this
    dataDim = new int matrixSim.getColumnDimension();
    rowDim = new int matrixSim.getRowDimension();
    simVecMean = new double[dataDim];
    simVecSD = new double[dataDim];
    simVecUn = new double[dataDim];
    sum = new Sum();
  }

  public void vecGen()
  {
    for (int i = 0; i < dataDim; i++)
    {
      simVecMean[i] = sum.evaluate(matrixSim.getColumn(i), 0, rowDim)/rowDim
    }
  }
}
类向量 { 双[][]普雷维马特; RealMatrix matrixSim;//这是有问题的 int-dataDim; int-rowDim; 双simvec均值; 双simVecSD; 双simVecUn; 双和; vecGenUn(双[][]tempPM) { prevMat=tempSM; matrixSim=newArray2DroArralMatrix(prevMat);//可能是这样 dataDim=new int matrixSim.getColumnDimension(); rowDim=new int matrixSim.getRowDimension(); simVecMean=新的双精度[dataDim]; simVecSD=新的双精度[dataDim]; simVecUn=新的双精度[dataDim]; 总和=新总和(); } 公共空间 { 对于(int i=0;i
现在方法尚未实现,但是当我需要所有Appache数学库方法使用RealMatrix数据类型时,我如何在这里使用RealMatrix数据类型,而且我还需要从创建该类实例时提供的值(双数组)构造它

在提供的代码中,有各种与Apache Commons Math无关的编译器错误。在尝试确定该库是否存在问题之前,请先解决这些问题

更正意见以(*)标记:

类向量 { 双[][]普雷维马特; RealMatrix matrixSim;//这是有问题的 int-dataDim; int-rowDim; 双simvec均值; 双simVecSD; 双simVecUn; 双和; vecGenUn(双[][]tempPM) { prevMat=tempSM;//(*)tempSM未定义 matrixSim=newArray2DroArralMatrix(prevMat);//可能是这样 dataDim=new int matrixSim.getColumnDimension();/(*)“new int”无效 rowDim=new int matrixSim.getRowDimension();/(*)同上 simVecMean=new double[dataDim];//(*)将数组分配给标量变量 simVecSD=新的双精度[dataDim];//(*)同上 simVecUn=新的双精度[dataDim];//(*)同上 sum=新的sum();/(*)将对象分配给基元 } 公共空间 { 对于(int i=0;i您使用的是什么IDE,以及您是如何将commons-math.jar包含在构建路径中的?您可以发布您获得的堆栈跟踪吗?这是处理应用程序的全部内容,因此导入不是通过构建路径,而是通过将其包含在草图库中。不过它很管用。哎哟,多谢了布伦特。我打字太快了,没注意到。但在此期间,我通过重新打字使它起作用。因此,可以使用任何appache.commons.math数据类型作为类特定变量。
class vecGenUn
{
  double[][] prevMat;
  RealMatrix matrixSim;  //this is problematic
  int dataDim;
  int rowDim;
  double simVecMean;
  double simVecSD;
  double simVecUn;
  double sum;

  vecGenUn (double[][] tempPM)
  {
    prevMat = tempSM; // (*) tempSM is undefined
    matrixSim = new Array2DRowRealMatrix(prevMat);  //and possibly this
    dataDim = new int matrixSim.getColumnDimension(); // (*) 'new int' is invalid
    rowDim = new int matrixSim.getRowDimension(); // (*) ditto
    simVecMean = new double[dataDim]; // (*) assigning an array to a scalar variable
    simVecSD = new double[dataDim]; // (*) ditto
    simVecUn = new double[dataDim]; // (*) ditto
    sum = new Sum(); // (*) assigning object to primitive
  }

  public void vecGen()
  {
    for (int i = 0; i < dataDim; i++)
    {
      simVecMean[i] = sum.evaluate(matrixSim.getColumn(i), 0, rowDim)/rowDim // (*) indexing a scalar variable
    }
  }
}