gpt4 book ai didi

c++ - MatrixBase::sqrt() 在 Eigen3 中不起作用

转载 作者:行者123 更新时间:2023-11-27 23:44:33 26 4
gpt4 key购买 nike

大家好:),

我试图使用 Eigen3 的一个不受支持的功能来获取矩阵 (MatrixBase::sqrt()) 中每个元素的平方根。但是,每次我使用前面提到的函数时,Visual Studio 都会给我以下错误:Use of undefined type 'Eigen::MatrixSquareRootReturnValue<Derived>'

这就是我正在做的:

Eigen::MatrixXd ScalesM(3,3);
ScalesM << 1, 2, 3, 4, 5, 6, 7, 8, 9;
ScalesM = ScalesM.sqrt();

我们将不胜感激任何形式的帮助。祝你有美好的一天!

最佳答案

您正在查看错误的文档。矩阵的平方根与矩阵每个元素的平方根不同。如果你想要逐元素操作,那么你应该使用 Eigen Array而不是 Eigen 矩阵。您始终可以使用 .array() 从矩阵转换为数组函数和从数组到矩阵使用 .matrix() .因此,您的用例的正确文档是 here .

你的代码应该是

ScalesM.array().sqrt();

或者正如@Henri Menke 在评论中建议的那样,您可以使用

ScalesM.cwiseSqrt();

关于c++ - MatrixBase::sqrt() 在 Eigen3 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51681324/

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