gpt4 book ai didi

java - 如何将 RealVector 与 RealMatrix 相乘?

转载 作者:行者123 更新时间:2023-12-02 11:07:48 25 4
gpt4 key购买 nike

如何将给定的 RealVector 乘以 RealMatrix?我在这两个类上都找不到任何“乘法”方法,只有 preMultiply 但它似乎不起作用:

// point to translate
final RealVector p = MatrixUtils.createRealVector(new double[] {
3, 4, 5, 1
});

// translation matrix (6, 7, 8)
final RealMatrix m = MatrixUtils.createRealMatrix(new double[][] {
{1, 0, 0, 6},
{0, 1, 0, 7},
{0, 0, 1, 8},
{0, 0, 0, 1}
});

// p2 = m x p
final RealVector p2 = m.preMultiply(p);
// prints {3; 4; 5; 87}
// expected {9; 11; 13; 1}
System.out.println(p2);

请将实际结果与预期结果进行比较。

是否还有一种方法可以将 Vector3D 与 4x4 RealMatrix 相乘,其中 w 分量被丢弃? (我寻找的不是自定义实现,而是库中已有的方法)。

最佳答案

preMultiply 不会给你 m x p 而是 p x m。这适合您的问题,但不适合您的评论//p2 = m x p

要获得您想要的结果,您有两种选择:

  1. 使用 RealMatrix#operate(RealVector) 生成 m x p:

    RealVector mxp = m.operate(p);    
    System.out.println(mxp);
  2. 预乘之前转置矩阵:

    RealVector pxm_t = m.transpose().preMultiply(p);
    System.out.println(pxm_t);

结果:

{9; 11; 13; 1}

关于java - 如何将 RealVector 与 RealMatrix 相乘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33275669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com