Java 使用ujmp创建单位矩阵

Java 使用ujmp创建单位矩阵,java,matrix,ujmp,Java,Matrix,Ujmp,我正在使用通用Java矩阵包创建矩阵、稀疏矩阵、单位矩阵和矩阵运算,如加法、减法、转置等。我在实现代码时遇到了一些问题 如何使用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 I

我正在使用通用Java矩阵包创建矩阵、稀疏矩阵、单位矩阵和矩阵运算,如加法、减法、转置等。我在实现代码时遇到了一些问题

  • 如何使用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创建标识矩阵的文档

    如果有人知道,请分享

  • 试试下面的方法

    Matrix identity = DenseMatrix.Factory.zeros(3, 3);
    for(int i=0; i < 3; y++)
       identity.setAsDouble(1.0, i, i);
    
    Matrix identity=DenseMatrix.Factory.zero(3,3);
    对于(int i=0;i<3;y++)
    identity.setAsDouble(1.0,i,i);
    
    尝试以下操作

    Matrix identity = DenseMatrix.Factory.zeros(3, 3);
    for(int i=0; i < 3; y++)
       identity.setAsDouble(1.0, i, i);
    
    Matrix identity=DenseMatrix.Factory.zero(3,3);
    对于(int i=0;i<3;y++)
    identity.setAsDouble(1.0,i,i);
    
    在UJMP矩阵包中没有像JAMA矩阵包那样的内置标识矩阵。如果不需要稀疏或密集矩阵运算,只需要一些基本的矩阵运算,最好使用JAMA矩阵。JAMA有适当的文档。

    在UJMP矩阵包中没有像JAMA矩阵包那样的内置标识矩阵。如果不需要稀疏或密集矩阵运算,只需要一些基本的矩阵运算,最好使用JAMA矩阵。JAMA有适当的文档。

    哦,那么你建议创建一个身份矩阵。没有像JAMA那样的球形身份矩阵?好的,这很有效。新矩阵(1-Gt)的下一步是什么?我该怎么做呢?看起来-不,根据文档,还有UJMP的github源代码。哦,那么你建议创建一个身份矩阵。没有像JAMA那样的球形身份矩阵?好的,这很有效。新矩阵(1-Gt)的下一步是什么?我如何继续?根据文档,看起来像-不,还有UJMP的github源代码。