2011-03-08 85 views
0

我想將2d雙數組轉換爲另一個整數數組。 double數組填充的值小於1.我想要做的是創建一個新的int [] []數組,並使用if else語句將新數組中的值設置爲1和0.我發佈了我的嘗試但我不確定在哪裏初始化我的int數組,它被稱爲intMatrix。將2d雙數組轉換爲2d 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; 
} 

你們有什麼想法,我做錯了什麼。在此先感謝, Jetnori。

+0

對不起原諒我的打字錯誤。我的意思是我想將一個2d雙數組轉換爲另一個2d int數組。謝謝。 – Jetnor 2011-03-08 22:11:52

+0

謝謝你,會做。我試着回覆大家說謝謝。我一定會用你的建議。 – Jetnor 2011-03-08 22:25:33

回答

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++){ 
... 
1

你的if是檢查錯誤的數組。

intMatrix [i] [y] =(int)speaRealMatrixArray [i] [y];如果我們假設給定矩陣中的值爲< 1,那麼它總是0。然後在下一行中檢查其值必須爲0。刪除作業並檢查speaRealMatrixArray [i] [y] < 0.6

您還必須正確初始化int數組。

1

正確初始化intMatrix。

代替

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

也可以嘗試

​​
+0

謝謝隊友。現在有道理。上面的陳述完全沒用。 – Jetnor 2011-03-08 22:29:48