怎么给QQ名片做网站,苏州市工业园区规划建设局网站,做任务 网站,wordpress 主题转换注意1#xff1a;Eigen 是一个基于 C 模板的线性代数库#xff0c;以支持在 C 中进行矩阵运算#xff1b;
注意2#xff1a;要在 C 中使用 Eigen#xff0c;需要在在程序开始前要包含所需头文件路径#xff1b;
#include Eigen a
a
基础用法汇总 定义向量
E…注意1Eigen 是一个基于 C 模板的线性代数库以支持在 C 中进行矩阵运算
注意2要在 C 中使用 Eigen需要在在程序开始前要包含所需头文件路径
#include Eigen a
a
基础用法汇总 定义向量
Eigen::Vector2d x(1,2) // 2维向量
Eigen::Vector3d x(1,2,3) // 3维向量
Eigen::VectorXd x(n) // 自定义n维向量 定义矩阵
Eigen::Matrix2d mat // 2维矩阵
Eigen::Matrix3d mat // 3维矩阵
Eigen::Matrix4d mat // 4维矩阵
Eigen::MatrixXd mat(m,n) // 自定义m行n列矩阵
Eigen::Matrix double, m, n mat; // 自定义m行n列矩阵 初始化特殊矩阵
Eigen::MatrixXd::Identity(m, n); //单位矩阵
Eigen::MatrixXd::Zero(m, n); //全零矩阵
Eigen::MatrixXd::Ones(m, n); //全一矩阵
Eigen::MatrixXd::Random(m, n); //随机矩阵
注意如果想得到一个特殊矩阵那么要先将矩阵的形状定义出来然后再给这个矩阵胚子赋值使其成为特殊矩阵如下示例
Eigen::Matrix3d mat; //先定义
Eigen::MatrixXd::Identity(m, n); //后赋值初始化 对向量/矩阵赋值
Eigen::VectorXd x(n) //先定义
x(1) 2; //后赋值
Eigen::MatrixXd mat(2,2) //先定义
mat 1,2,3,4; //赋值方式1
mat(0,1) 2 //赋值方式2 矩阵运算
注意对于加减乘除运算定义矩阵/向量时所调用的类已经将这些基础运算重载过了只要两边都是符合要求的矩阵/向量类型就可以直接使用这些操作符进行矩阵运算
mat.inverse(); //逆矩阵
mat.dot(w); //向量mat点积向量w
mat.cross(w); //向量mat叉乘向量w
mat.transpose() //转置
mat.norm() //向量求模矩阵范数 矩阵属性
vec.size(); //访问向量长度
mat.rows(); //访问矩阵行数
mat.cols(); //访问矩阵列数
mat.blockm,n(i,j) //矩阵块操作从i,j开始取m×n大小的矩阵
mat.minCoeff(); //输出矩阵中最大的元素
mat.maxCoeff(); //输出矩阵中最小的元素
MatrixXd mMat(4,4);
mMat 11, 10, 13, 15,3, 24, 56, 1,2, 12, 45, 0,8, 5, 6, 4;
double min mMat.minCoeff(); //输出0
double max mMat.maxCoeff(); //输出56 a
a
参考文章
[C]Eigen库常用函数_eigen::vector2d-CSDN博客Eigen库使用之矩阵的最大/小值及其位置_maxcoeff-CSDN博客