eigen库selfadjointView问题

发布于 2024-12-01 01:38:04 字数 534 浏览 0 评论 0原文

每当我尝试使用 eigen 库使用任何矩阵或稀疏矩阵的 selfadjointView 属性时,我都会不断收到错误消息。下面是一个简单的代码来检查这一点。在我的程序中,我尝试使用自伴随矩阵:

#define EIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET
#include <Eigen/Sparse>
#include <Eigen/Dense>
#include <Eigen/Core>
#include <iostream>

using namespace Eigen;
int main ()
{
SparseMatrix<float>  mat(3,3);
Matrix<float, 3, 1> vec;
std::cout<<mat.selfadjointView<>()*vec;
}

我得到的错误消息是: 错误:没有匹配的函数可用于调用“Eigen::SparseMatrix::selfadjointView()”

I am persistently getting error messages whenever I try to use the selfadjointView property of any matrix or sparse matrix using the eigen library. Below is a simple code to check that. In my program I do try with self-adjoint matrix:

#define EIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET
#include <Eigen/Sparse>
#include <Eigen/Dense>
#include <Eigen/Core>
#include <iostream>

using namespace Eigen;
int main ()
{
SparseMatrix<float>  mat(3,3);
Matrix<float, 3, 1> vec;
std::cout<<mat.selfadjointView<>()*vec;
}

The error message I get is:
error: no matching function for call to ‚'Eigen::SparseMatrix::selfadjointView()‚

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半枫 2024-12-08 01:38:04

您必须指定模板参数,因此它应该读取 mat.selfadjointView()mat.selfadjointView() 。第一个意味着它应该使用 mat 上三角部分的条目并填充下三角部分以使矩阵自伴。第二个则相反。

You have to specify the template argument, so it should read mat.selfadjointView<Upper>() or mat.selfadjointView<Lower>() . The first one means that it should use the entries in the upper triangular part of mat and fill the lower triangular part to make the matrix self-adjoint. The second one is the other way around.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文