Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对称矩阵Java构造错误_Java_For Loop_Matrix_Symmetric - Fatal编程技术网

对称矩阵Java构造错误

对称矩阵Java构造错误,java,for-loop,matrix,symmetric,Java,For Loop,Matrix,Symmetric,这就是我的问题,我必须一步一步地生成这种矩阵。步骤如下所示。在谷歌上搜索之后,我知道这种矩阵叫做对称矩阵。这个矩阵的矩阵和转置是相同的。我试着写下一些代码来实现这一点 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

这就是我的问题,我必须一步一步地生成这种矩阵。步骤如下所示。在谷歌上搜索之后,我知道这种矩阵叫做对称矩阵。这个矩阵的矩阵和转置是相同的。我试着写下一些代码来实现这一点

    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

这不是对称矩阵。有人能告诉我应该在代码块中更改什么吗。我几乎达到了目标。

你似乎犯了一个又一个错误

 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

for(inti=0;i您似乎出现了一个off-by-one错误

 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
for(int i=0;i
位于错误的位置;您每次完成一行时都要将部分更新的
omega1
副本添加到
omega
中。因此,第一行添加5次,第二行添加4次……再加上从未更新最后一列,这就解释了您的结果


位于错误的位置;您每次完成一行时都会将部分更新的
omega1
副本添加到
omega
中。因此,第一行添加5次,第二行添加4次……再加上从未更新最后一列,这就解释了您的结果。

不是答案,只是一个澄清。抱歉,但是y我们的逻辑是不完整的。考虑第一遍历,i=0;然后j将从0迭代到3。因此,按照你的代码,你正在设置:

omega=omega.plus(omega1);
如果

R1C1 = 1; 
R1C2 = -1;
R1C3 = -1;
R1C4 = -1; 
if(i==j){
omega1.set(i,j,1);//这里我设置了值1,如果i=j
如果(i
只是一个快速的解决方案,记住你的方法,你总是可以优化它或使它更好


注:从未使用过JAM.Matrix,所以不知道函数,但我相信它基本上是一个2D数组,加上数学函数。Jez我听起来很傻!!< /P> < P>不是一个答案,只是一个澄清。抱歉,但是你的逻辑还不完全。考虑第一个遍历,i=0;然后J将从0个迭代到3个。你正在设置:

omega=omega.plus(omega1);
如果

R1C1 = 1; 
R1C2 = -1;
R1C3 = -1;
R1C4 = -1; 
if(i==j){
omega1.set(i,j,1);//这里我设置了值1,如果i=j
如果(i
只是一个快速的解决方案,记住你的方法,你总是可以优化它或使它更好


注意:我从未使用过Jama.Matrix,所以我不知道函数,但我相信它基本上是一个添加了数学函数的2D数组。天啊,我听起来很傻!!

“我必须一步一步地生成这种矩阵”,但您的代码没有遵循问题开头的步骤。您知道这些步骤是什么吗?“我必须一步一步地生成这种矩阵"但是你的代码没有遵循问题开头的步骤。你知道这些步骤是什么吗?那么解决办法是什么呢?你有没有尝试过修复这里的答案指出的错误,并看到它会走多远?你有没有可能使用调试器逐步完成你的算法?那么解决办法是什么呢ion?您是否尝试过修复此处答案指出的错误,并查看其进展情况?您是否有可能使用调试器逐步完成您的算法?那么解决方案是什么?解决方案是什么?您可以使用2D数组编写此代码吗?这对我来说没问题。@EllenaMori不,我认为任何人都不应该向您提供现成的解决方案,学习曲线需要由你自己来调整。我已经为你提供了逻辑的热情,你应该能够在很短的时间内总结出一个有效的解决方案。想想看,如果我给你一个现成的解决方案,你会从中学到什么?祝你好运!!你能用2D数组编写这段代码吗?那将我没问题。@EllenaMori不,我不认为任何人应该给你一个现成的解决方案,学习曲线需要你一个人来调整。我给了你逻辑的热情,你应该能够在很短的时间内总结出一个有效的解决方案。想想看,如果我给你一个现成的解决方案,你会学到什么宁在里面?祝你好运!!