首页 > 解决方案 > 在Java中使用for循环时如何打印非对称值

问题描述

我想使用 for 循环实现一个矩阵。为了创建矩阵,我使用了 Jama Matrix Package。

这是我的代码

import Jama.Matrix;

public class Matrixnonsym {

   public static void main(String args[]) {
       Matrix Mytest=new Matrix(5,5);
       for(int i=0; i<4; i++) {
           Mytest.set(i,i,1);
           Mytest.set(i+1,i,1);
       }
       Mytest.print(9,6);
   }
}

这是我的输出:

1.000000   0.000000   0.000000   0.000000   0.000000
1.000000   1.000000   0.000000   0.000000   0.000000
0.000000   1.000000   1.000000   0.000000   0.000000
0.000000   0.000000   1.000000   1.000000   0.000000
0.000000   0.000000   0.000000   1.000000   0.000000

没有编译错误或运行时错误。困难在于我怎样才能使(0,0)单元格值为2?由于这个矩阵是使用 for 循环构造的,所以所有值都是对称构造的。那么我怎样才能只制作一个具有不同值的单元格呢?

愿望输出:

2.000000   0.000000   0.000000   0.000000   0.000000
1.000000   1.000000   0.000000   0.000000   0.000000
0.000000   1.000000   1.000000   0.000000   0.000000
0.000000   0.000000   1.000000   1.000000   0.000000
0.000000   0.000000   0.000000   1.000000   0.000000

标签: javamatrixlogicjama

解决方案


我以前从未使用过 Jama,但从 Javadoc 我认为你可以这样做:

import Jama.Matrix;

public class Matrixnonsym {
public static void main(String args[]){
    Matrix Mytest=new Matrix(5,5);
    for(int i=0;i<4;i++){
        Mytest.set(i,i,1);
        Mytest.set(i+1,i,1);
    }
    Mytest.set(0, 0, 2.0) 
    Mytest.print(9,6);
}
}

推荐阅读