gpt4 book ai didi

c++ - 关于Eigen::MatrixXd列式计算的问题

转载 作者:行者123 更新时间:2023-11-30 03:17:09 29 4
gpt4 key购买 nike

是否有按如下方式应用列式计算?(每列除以该列的最后一个条目)

Eigen::MatrixXd A(3,5), B(3,5); 

A << 1, 4, 9, 16, 25,
2, 4, 6, 8, 10,
1, 2, 3, 4, 5;

B = (A.col) / (A.bottomerows<1>).col;

B 将是:

B = 1, 2, 3, 4, 5,
2, 2, 2, 2, 2,
1, 1, 1, 1, 1;

最佳答案

您正在寻找的函数是 .hnormalized().homogeneous()。两者都可以像这样应用.colwise():

Eigen::MatrixXd B = A.colwise().hnormalized().colwise().homogeneous();

您可以使用一些 .replicate() 魔术来实现相同的效果,如下所示:

Eigen::MatrixXd B = A.array() / A.row(2).replicate(A.rows(),1).array();

(如果 A 是一个 ArrayXXd,而不是 MatrixXd,您不需要编写 .array( ))

关于c++ - 关于Eigen::MatrixXd列式计算的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55754966/

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