使用 ujmp 创建单位矩阵
Identity Matrix creation using 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 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 class 来扫描这个值。该值在 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);
像 JAMA 矩阵包一样,UJMP 矩阵包中没有内置单位矩阵。如果不需要稀疏或密集矩阵操作,只需要一些基本的矩阵操作,最好使用 JAMA 矩阵。 JAMA 有适当的文档。
我正在使用通用 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 class 来扫描这个值。该值在
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);
像 JAMA 矩阵包一样,UJMP 矩阵包中没有内置单位矩阵。如果不需要稀疏或密集矩阵操作,只需要一些基本的矩阵操作,最好使用 JAMA 矩阵。 JAMA 有适当的文档。