【发布时间】:2018-05-30 20:56:42
【问题描述】:
c1 c2 C3 C4 c1 c2 C3 C4
R1 1 0 0 0 R1 1+1 -1 0 0
R2 0 0 0 0 R2 -1 1 0 0
R3 0 0 0 0 R3 0 0 0 0
R4 0 0 0 0 R4 0 0 0 0
c1 c2 C3 C4 c1 c2 C3 C4
R1 2 -1 0 0 R1 2 -1 0 0
R2 -1 1+1 -1 0 R2 -1 2 -1 0
R3 0 -1 1 0 R3 0 -1 1+1 -1
R4 0 0 0 0 R4 0 0 -1 1
c1 c2 C3 C4
R1 2 -1 0 0
R2 -1 2 -1 0
R3 0 -1 2 -1
R4 0 0 -1 1
所以,这是我的问题。我必须逐步生成这种矩阵。步骤如下所示。在谷歌上搜索后,我知道这种矩阵称为对称矩阵。这个矩阵的矩阵和转置是一样的。我尝试写下一些代码来实现这一点。
import Jama.Matrix;
public class mutest {
public static void main(String args[]){
Matrix omega=new Matrix(5,5);
Matrix omega1=new Matrix(5,5);
for(int i=0;i<=4;i++){
for(int j=0;j<4;j++) {
if (i == j) {
omega1.set(i, j, 1);//Here I set the value 1 if i=j
} else {
omega1.set(i, j, -1);//Here I set the value -1 if i not equal j
}
}
omega=omega.plus(omega1);
omega.print(9,6);
}
}
}
但我没有得到期望的输出: 我得到了
5.000000 -5.000000 -5.000000 -5.000000 0.000000
-4.000000 4.000000 -4.000000 -4.000000 0.000000
-3.000000 -3.000000 3.000000 -3.000000 0.000000
-2.000000 -2.000000 -2.000000 2.000000 0.000000
-1.000000 -1.000000 -1.000000 -1.000000 0.000000
这个不是对称矩阵。谁能告诉我应该在我的代码块中更改什么。我几乎达到了目标。
【问题讨论】:
-
“我必须逐步生成这种矩阵” 但是您的代码没有按照问题开头的步骤概述。你知道这些步骤是什么吗?
标签: java for-loop matrix symmetric