【问题标题】:convert a 2d double array to a 2d int array将 2d double 数组转换为 2d int 数组
【发布时间】:2011-03-08 22:10:20
【问题描述】:

我想将一个二维双精度数组转换为另一个二维整数数组。 double 数组填充了小于 1 的值。我想要做的是创建一个新的 int[][]array 并使用 if else 语句将新数组中的值设置为 1 和 0。我已经发布了我的尝试但我不确定在哪里初始化称为 intMatrix 的 int 数组。

public int[][] readCorrMatrix(){

    String filename=ReadFile.getPath();
    double[][]rawDataMatrix=ReadMatrix.readDataMatrix(filename, ",");
    RealMatrix speaRealMatrix=Spearmans.calcSpearMatrix(rawDataMatrix);
    double[][]speaRealMatrixArray=speaRealMatrix.getData();
    int[][]intMatrix=null;
    for(int i=0; i<speaRealMatrixArray.length;i++){
        for(int y=0; y<speaRealMatrixArray[i].length;y++){

            intMatrix[i][y]=(int)speaRealMatrixArray[i][y];
            if(speaRealMatrixArray[i][y]<0.6)
            {
                intMatrix[i][y]=0;
            }
                else
                {
                    intMatrix[i][y]=1;
                }               
        }
    }
    return intMatrix;
}

你们知道我做错了什么吗?提前致谢, 杰特诺里。

【问题讨论】:

  • 抱歉,我打错了字。我的意思是我想将 2d double 数组转换为另一个 2d int 数组。谢谢。
  • 谢谢马特,会的。我试着回复大家说声谢谢。我一定会听从你的建议。

标签: java arrays multidimensional-array copy


【解决方案1】:
int[][]intMatrix= new int[speaRealMatrixArray.length][];
...
for(int i=0; i<speaRealMatrixArray.length;i++){
      intMatrix[i] = new new int[speaRealMatrixArray[i].length];
      for(int y=0; y<speaRealMatrixArray[i].length;y++){
...

【讨论】:

    【解决方案2】:

    您的 if 正在检查错误的数组。

    intMatrix[i][y]=(int)speaRealMatrixArray[i][y];如果我们假设给定矩阵中的值

    您还必须正确初始化 int 数组。

    【讨论】:

      【解决方案3】:

      正确初始化 intMatrix。

      也代替

      intMatrix[i][y] = (int) speaRealMatrixArray[i][y];
      if (intMatrix[i][y] < 0.6) {
          intMatrix[i][y] = 0;
      } else {
          intMatrix[i][y] = 1;
      }  
      

      试试

      if ( speaRealMatrixArray[i][y] < 0.6) {
          intMatrix[i][y] = 0;
      } else {
          intMatrix[i][y] = 1;
      }
      

      【讨论】:

      • 谢谢伙计。现在说得通了。 if 上面的语句根本没有用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-08
      • 2012-06-08
      • 2020-02-27
      • 2017-04-04
      • 1970-01-01
      相关资源
      最近更新 更多