(十一)pcl-eigen篇-基本运算

2022-03-15  本文已影响0人  GoodTekken

参考:https://www.cnblogs.com/rainbow70626/p/8819119.html

#include <iostream>
#include <Eigen/Dense>
using namespace Eigen;
using namespace std;
int main()
{
    MatrixXf a(4, 1);
    a = MatrixXf::Zero(4, 1);//初始化为0
    cout << "初始化为0" << endl << a << endl;

    a = MatrixXf::Ones(4, 1);//初始化为1,矩阵大小与初始化相关,因为是动态矩阵
    cout << "初始化为1" << endl << a << endl;

    a.setZero();//矩阵置零
    cout << "矩阵置零" << endl << a << endl;

    a << 1, 2, 3, 4;//手动赋值

    MatrixXf b(1, 4);
    b.setRandom();//随机生成一个矩阵
    MatrixXf c(3, 3);
    c.setIdentity();
    cout << "置单位矩阵:" << endl << c << endl;
    c.setRandom();
    cout << "置随机矩阵:" << endl << c << endl;

    MatrixXf d = c;
    d = d.inverse();
    cout << "置矩阵的逆:" << endl << d << endl;

    cout << "矩阵a:" << endl << a << endl;
    cout << "矩阵b:" << b << endl;
    cout << "矩阵c:" << endl << c << endl;

    cout << "访问a(0):" << endl << a(0) << endl;
    cout << "矩阵相乘:" << endl << a * b << endl;
    cout << "矩阵数乘:" << endl << 2 * a << endl;
    cout << "矩阵c求逆d:" << endl << d << endl;
    cout << "逆矩阵回乘:" << endl << d * c << endl;
    cout << "逆矩阵d转置:" << endl << d.transpose() << endl;
    Vector3d v(1, 2, 3);
    Vector3d w(1, 0, 0);
    cout << "向量相加:" << endl << v + w << endl;
    return 0;
}

输出:

初始化为0
0
0
0
0
初始化为1
1
1
1
1
矩阵置零
0
0
0
0
置单位矩阵:
1 0 0
0 1 0
0 0 1
置随机矩阵:
  0.170019   0.791925  -0.651784
-0.0402539    0.64568   0.717887
 -0.299417    0.49321   0.421003
置矩阵的逆:
 0.289714   2.30709  -3.48548
 0.697552  0.435359  0.337562
-0.611145   1.13077  -0.49905
矩阵a:
1
2
3
4
矩阵b:-0.997497  0.127171 -0.613392  0.617481
矩阵c:
  0.170019   0.791925  -0.651784
-0.0402539    0.64568   0.717887
 -0.299417    0.49321   0.421003
访问a(0):
1
矩阵相乘:
-0.997497  0.127171 -0.613392  0.617481
 -1.99499  0.254341  -1.22678   1.23496
 -2.99249  0.381512  -1.84017   1.85244
 -3.98999  0.508683  -2.45357   2.46992
矩阵数乘:
2
4
6
8
矩阵c求逆d:
 0.289714   2.30709  -3.48548
 0.697552  0.435359  0.337562
-0.611145   1.13077  -0.49905
逆矩阵回乘:
           1            0            0
 7.45058e-09            1 -4.47035e-08
           0 -4.47035e-08            1
逆矩阵d转置:
 0.289714  0.697552 -0.611145
  2.30709  0.435359   1.13077
 -3.48548  0.337562  -0.49905
向量相加:
2
2
3
上一篇 下一篇

猜你喜欢

热点阅读