2017-03-02 7 views
0

Ich mache einige Matrix-Operationen in der Bildverarbeitung mit JAMA. Hier multipliziere ich eine Matrix mit ihrer Transponierte. Sicher ist es möglich. Aber Ich erhalte den folgenden Fehler:Jama Matrix-Dimensionen müssen übereinstimmen, auch wenn die Dimensionen übereinstimmen

Exception in thread "main" java.lang.IllegalArgumentException: Matrix dimensions must agree. 
    at Jama.Matrix.checkMatrixDimensions(Matrix.java:1041) 
    at Jama.Matrix.arrayTimes(Matrix.java:615) 
    at javaapplication52.JavaApplication52.main(JavaApplication52.java:66) 

Mein Code-Schnipsel ist:

double dd[][]={{0,1,2,3,4,5,6,7,8},{1,2,3,4,5,6,7,8,9},{2,3,4,5,6,7,8,9,10}}; 
     Matrix M=new Matrix(dd); 
     Matrix MT=M.transpose(); 
     Matrix C=MT.arrayTimes(M); 
     double CC[][]=C.getArray(); 

    for(int i=0;i<3;i++) 
{ 
    for(int j=0;j<3 ;j++) 
    { System.out.println(CC[i][j]+" "); 
    } 
    System.out.println("\n "); 
    //nextLine(); 
} 

Antwort

0

Für Matrixmultiplikation, sollten Sie MT.times(M) verwenden.

MT.arrayTimes(M) wird für die Elementmultiplikation verwendet.

+0

Dank mate. Kann aber nicht upvote, weil meine Punkte mir nicht erlauben. –

Verwandte Themen