VCG Eigen库学习记录

本文介绍如何利用Eigen库简化矩阵运算,包括矩阵初始化、输出和调整尺寸等基本操作,并提供了一个简单的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    线性代数的eigen库最近的稳定版本的一个副本(相当于就是借用第三方库了),VCGLib中的高级矩阵操作都是基于这个库的。

    用vs编译使用Eigen非常方便。

#include <iostream>
#include <Eigen/Dense>
using Eigen::MatrixXd;
int main()
{
    MatrixXd m(2,2);
    m(0,0) = 3;
    m(1,0) = 2.5;
    m(0,1) = -1;
    m(1,1) = m(1,0) + m(0,1);
    std::cout << m << std::endl;
}

    很方便的就是,这个类重载了cout,这样直接 cout << m << endl;就行了,但是对大型矩阵输出对不齐,不方便查看(想看就输出成txt看吧)。如果是小矩阵比如3*3,或者4*4或者这样大小的,可以直接用Matrix4f类似的可以类推。

    除了设置矩阵,还可以用向量的形式初始化,可以使静态的也可以是动态的。

    VectorXd,这样一个维度是1的其实也是矩阵,不过就是起了新的好理解的名字。比如:

    typedef Matrix<double, Dynamic, Dynamic> MatrixXd;

    typedef Matrix<int, Dynamic, 1> VectorXi;

    可以使用Resize()函数重写

Matrix4d m;
m.resize(4,4); // no operation

    如果维度没有变,是没有操作的,如果维度变了,这个函数是dextructive的,原来的参数可能会变,如果想保留原来的,使用conservativeResize()方法。

    https://blog.youkuaiyun.com/hanss2/article/details/78822955

     具体矩阵的性质的使用和计算,这兄弟总结挺好的= =。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值