【发布时间】:2013-09-27 01:18:34
【问题描述】:
我正在尝试使用 Java 中的线程将两个矩阵相乘。我不知道我的代码发生了什么,因为它没有显示矩阵的乘积,而是显示 0 或我的 MatrixC 的内存位置。这是我的线程乘法代码:
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] 的情况下运行,输出是一个内存位置。我该怎么办?
【问题讨论】:
-
数组没有被覆盖的
toString()方法。使用Arrays.toString()。 -
您是否知道要打印矩阵的
single元素,因为您是在所有循环之外进行的? -
我修好了,PM 77。谢谢
标签: java multithreading matrix matrix-multiplication multiplication