使用ujmp创建Identity Matrix

时间:2018-07-13 17:43:28

标签: java matrix ujmp

我正在使用通用Java矩阵包来创建Matrix,稀疏矩阵,Identity Matrix和Matrix操作(例如加法,减法,转置等)。我在实现代码时遇到一些问题。

  1. 如何使用UJMP创建身份矩阵?

    这是我的代码

    导入org.ujmp.core.Matrix;

    import java.io.File;
    
    import java.io.IOException;
    
    import java.util.Scanner;
    
    public class odou {
    
    public static void main(String args[])throws IOException {
    
    double t = 0.002;
    
        double time=0.0,forwardvelocity=0.0,angularvelocity=0.0;
        Matrix Gt=Matrix.Factory.zeros(3,3);
    
    
        Scanner x=new Scanner(new File("/home/froboticscse/IdeaProjects/UJMPtest/src/main/java/Robot1_O.txt"));
        while(x.hasNext()) {
            time = x.nextDouble();
            forwardvelocity = x.nextDouble();
            angularvelocity = x.nextDouble();
    
            Gt.setAsDouble(1.0,0,0);
            Gt.setAsDouble(0.0,0,1);
            Gt.setAsDouble((-forwardvelocity*t*Math.sin(theta_initialU+(angularvelocity*t)/2)),0,2);
            Gt.setAsDouble(0.0,1,0);
            Gt.setAsDouble(1.0,1,1);
            Gt.setAsDouble((forwardvelocity*t*Math.cos(theta_initialU+(angularvelocity*t)/2)),1,2);
            Gt.setAsDouble(0.0,2,0);
            Gt.setAsDouble(0.0,2,1);
            Gt.setAsDouble(1.0,2,2);
        } }}
    

    我有一个文件名Robot1_O.txt,它由3列和各行组成。我正在使用Scanner类来扫描此值。该值是Gt矩阵内的循环。 Gt是一个3 * 3的矩阵。我还想创建一个3 * 3的身份矩阵。

    创建此身份矩阵后,我创建另一个矩阵New,类似于(I -Gt)。我找不到任何有关如何使用UJMP创建身份矩阵的文档。

    如果有人知道,请分享。

2 个答案:

答案 0 :(得分:1)

尝试以下

Matrix identity = DenseMatrix.Factory.zeros(3, 3);
for(int i=0; i < 3; y++)
   identity.setAsDouble(1.0, i, i);

答案 1 :(得分:1)

在UJMP矩阵包(如JAMA矩阵包)中没有标识矩阵的构建。如果您不需要稀疏或密集矩阵运算,只需要一些基本的矩阵运算,最好使用JAMA矩阵。 JAMA有适当的文档。