【发布时间】:2020-05-03 19:49:50
【问题描述】:
我的目标是并行实现以下方法: public static double[][] parallelAddMatrix(double[][] a, double[][] b),然后在随机生成的两个大小为 2000 x 2000 的列表上测试我的程序。最后我必须输出矩阵的前 5 个元素a 和矩阵 b,以及结果矩阵的前五个元素,这就是我遇到的问题。
这是我创建第一个和第二个矩阵的代码部分。
public static void main(String[] args) {
int var1, var2;
final int matrices = 2000;
// creates first matrix
double[][] matrixA = new double[matrices][matrices];
for(var1 = 0; var1 < matrixA.length; var1++)
for (var2 = 0; var2 < matrixA[var1].length; var2++)
matrixA[var1][var2] = 1;
// creates second matrix
double[][] matrixB = new double[matrices][matrices];
for (var1 = 0; var1 < matrixB.length; var1++)
for (var2 = 0; var2 < matrixB[var1].length; var2++)
matrixB[var1][var2] = 1;
然后后来创建了一个函数来创建结果矩阵...
public static double[][] parallelAddMatrix( double [][] a, double[][] b) {
//creates output matrix
double[][] resultMatrix = new double[a.length][a[0].length];
RecursiveAction task = new multiProcess(a, b, resultMatrix);
ForkJoinPool joinPool = new ForkJoinPool();
joinPool.invoke(task);
return resultMatrix;
}
如何打印出三个矩阵中每一个的前五个元素?
我已经为第一个和第二个矩阵尝试了一些东西,例如初始化 var3,然后在“matrixA(orB)[var1][var2] = 1;”下,我把
for (var3 = 0; var3 < 5; var3++) {
System.out.println(var3);
}
也试过了
for (var3 = 0; var3 < 5; var3++) {
System.out.print(matrixA[var1][var2] + "");
}
System.out.println();
请对此提供帮助,并请告诉每个人将其放置在哪里(我可能对括号有问题)。
【问题讨论】:
-
您想按行或按列打印前 5 个元素?根据这一点,只需使用 for 循环,并使用一个索引常量和另一个从 0 到 4 变化的索引进行迭代。