1

I'm trying to multiply two matrices using threads in Java. I don't know what's happening with my code, because it doesn't show the product of matrices, instead it shows 0 or the memory position for my MatrixC. Here's my thread-multiplication code:

public class ThreadMatrix extends Thread {
    int ini, end, counter;

    // Interval for each thread
    public ThreadMatrizes(int ini, int end) {
        this.init = ini; // Position of the matrix where the thread starts
        this.end = end; // Position of the matrix where the thread ends
    }

    public void run(){

        int i = 0, j = 0, k = 0;

        for (i = init; i < end; i++){
            for (j= init; j < end; j++){
                for (k = init; k < end; k++){
                    MatrixMultiplication.matrixC[i][j] += MatrixMultiplication.matrixA[i][k]*MatrixMultiplication.matrixB[k][j];
                }
            }
        }
        System.out.println(MatrixMultiplication.matrixC[i][j]);
    }
}

System.out.prinln(MatrixMultiplication.matrixC[i][j]);なしで実行しようとしましたが、[i][j]出力はメモリ位置です。私は何をすべきか?

4

1 に答える 1

0

多次元配列を印刷するには、 を使用できますArrays.deepToString。このメソッドは、多次元配列を印刷するために設計されました。

System.out.println(Arrays.deepToString(MatrixMultiplication.matrixC));

または、よりカスタマイズされた印刷出力が必要な場合は、たとえば独自のループを作成できます

for (i = init; i < end; i++){
  for (j= init; j < end; j++){
       System.out.print(MatrixMultiplication.matrixC[i][j] + " ");
  }
    System.out.println();
}
于 2013-09-27T08:59:32.737 に答える