eigen库使用_eigen3

eigen库使用_eigen3Eigen库的安装1.VisualStudio2017安装eigen库1.1下载eigen库1.2配置1.3运行测试1.VisualStudio2017安装eigen库1.1下载eigen库eigen官网下载地址找到自己需要的版本下载,我下载的是3.3.9,箭头指向的zip。解压缩得到文件eigen-3.3.9,放到自己想放置的路径下(后面会引用此处的路径)。1.2配置在VS2017中新建一个空项目,取名为“eigen_demo”。输入以下测试

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1. Visual Studio 2017 安装 eigen 库

1.1 下载 eigen 库

eigen官网下载地址
在这里插入图片描述

找到自己需要的版本下载,我下载的是3.3.9,箭头指向的 zip。
解压缩得到文件eigen-3.3.9,放到自己想放置的路径下(后面会引用此处的路径)。

1.2 配置

在VS 2017中新建一个空项目,取名为“eigen_demo”。输入以下测试代码(官方测试代码):

#include <iostream>
#include <Eigen/Dense>
using namespace Eigen;
using namespace std;
int main()
{ 

#pragma region Addition and subtraction
Matrix2d a;
a << 1, 2,
3, 4;
MatrixXd b(2, 2);
b << 2, 3,
1, 4;
std::cout << "a + b =\n" << a + b << std::endl;
std::cout << "a - b =\n" << a - b << std::endl;
std::cout << "Doing a += b;" << std::endl;
a += b;
std::cout << "Now a =\n" << a << std::endl;
Vector3d v(1, 2, 3);
Vector3d w(1, 0, 0);
std::cout << "-v + w - v =\n" << -v + w - v << std::endl;
#pragma endregion
#pragma region Scalar multiplication and division
// Matrix2d a; //duplicate definition
a << 1, 2,
3, 4;
// Vector3d v(1, 2, 3); //duplicate definition
std::cout << "a * 2.5 =\n" << a * 2.5 << std::endl;
std::cout << "0.1 * v =\n" << 0.1 * v << std::endl;
std::cout << "Doing v *= 2;" << std::endl;
v *= 2;
std::cout << "Now v =\n" << v << std::endl;
#pragma endregion
#pragma region Transposition and conjugation
MatrixXcf a_matrix = MatrixXcf::Random(2, 2);
cout << "Here is the matrix a_matrix\n" << a_matrix << endl;
cout << "Here is the matrix a_matrix^T\n" << a_matrix.transpose() << endl;
cout << "Here is the conjugate of a_matrix\n" << a_matrix.conjugate() << endl;
cout << "Here is the matrix a_matrix^*\n" << a_matrix.adjoint() << endl;
//This is the so-called aliasing issue
Matrix2i a_matrix2;
a_matrix2 << 1, 2, 3, 4;
cout << "Here is the matrix a_matrix2:\n" << a_matrix2 << endl;
// a_matrix2 = a_matrix2.transpose(); // !!! do NOT do this !!!
cout << "and the result of the aliasing effect:\n" << a_matrix2 << endl;
#pragma endregion
#pragma region Matrix-matrix and matrix-vector multiplication
Matrix2d mat;
mat << 1, 2,
3, 4;
Vector2d u_1(-1, 1), v_1(2, 0);
std::cout << "Here is mat*mat:\n" << mat * mat << std::endl;
std::cout << "Here is mat*u_1:\n" << mat * u_1 << std::endl;
std::cout << "Here is u_1^T*mat:\n" << u_1.transpose()*mat << std::endl;
std::cout << "Here is u_1^T*v:\n" << u_1.transpose()*v_1 << std::endl;
std::cout << "Here is u_1*v_1^T:\n" << u_1 * v_1.transpose() << std::endl;
std::cout << "Let's multiply mat by itself" << std::endl;
mat = mat * mat;
std::cout << "Now mat is mat:\n" << mat << std::endl;
#pragma endregion 
#pragma region Dot product and cross product
Vector3d v_2(1, 2, 3);
Vector3d w_2(0, 1, 2);
cout << "Dot product: " << v_2.dot(w_2) << endl;
double dp = v_2.adjoint()*w_2; // automatic conversion of the inner product to a scalar
cout << "Dot product via a matrix product: " << dp << endl;
cout << "Cross product:\n" << v_2.cross(w_2) << endl;
#pragma endregion
#pragma region Basic arithmetic reduction operations
Eigen::Matrix2d mat_3;
mat_3 << 1, 2,
3, 4;
cout << "Here is mat_3.sum(): " << mat_3.sum() << endl;
cout << "Here is mat_3.prod(): " << mat_3.prod() << endl;
cout << "Here is mat_3.mean(): " << mat_3.mean() << endl;
cout << "Here is mat_3.minCoeff(): " << mat_3.minCoeff() << endl;
cout << "Here is mat_3.maxCoeff(): " << mat_3.maxCoeff() << endl;
cout << "Here is mat_3.trace(): " << mat_3.trace() << endl;
Matrix3f m = Matrix3f::Random();
std::ptrdiff_t i, j;
float minOfM = m.minCoeff(&i, &j);
cout << "Here is the matrix m:\n" << m << endl;
cout << "Its minimum coefficient (" << minOfM
<< ") is at position (" << i << "," << j << ")\n\n";
RowVector4i v_4 = RowVector4i::Random();
int maxOfV = v_4.maxCoeff(&i);
cout << "Here is the vector v_4: " << v_4 << endl;
cout << "Its maximum coefficient (" << maxOfV
<< ") is at position " << i << endl;
#pragma endregion
/**************This is the end of example codes in Eigen3 online document. **********************/
system("pause");
}

此时项目默认为“DEBUG”模式,活动平台为“x64″。
在这里插入图片描述
如果后面更改了模式或平台,均要重新执行全部以下步骤。

鼠标右击项目 -> 选择属性 -> C/C++ -> 常规 -> 附加包含目录,将解压后的库文件夹所在路径:“ \Eigen 库\eigen-3.3.9 ”添加进去,点击确定。
在这里插入图片描述

再次打开此页面,链接器 -> 常规 -> 附加库目录,将路径“\Eigen 库\eigen-3.3.9”再次添加,点击确定。
在这里插入图片描述

1.3 运行测试

运行程序,看到正确运行的输出,Eigen库链接成功!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/180246.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • select top语句 mysql_SQL SELECT TOP 语句[通俗易懂]

    select top语句 mysql_SQL SELECT TOP 语句[通俗易懂]SELECTTOP子句用于规定要返回的记录的数目。SELECTTOP子句对于拥有数千条记录的大型表来说,是非常有用的。注释:并非所有的数据库系统都支持SELECTTOP子句。SQLServer/MSAccess语法SELECTTOPnumber|percentcolumn_name(s)FROMtable_name;MySQL和Oracle中的SQLSEL…

  • 2020 4.13 idea激活码【在线破解激活】

    2020 4.13 idea激活码【在线破解激活】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • PhpSpreadsheet_php file_put_contents

    PhpSpreadsheet_php file_put_contentsSpreadsheet支持excel函数公式使用<?php namespaceapp #给类文件的命名空间起个别名 usePhpOffice\PhpSpreadsheet\Spreadsheet; #Xlsx类将电子表格保存到文件 usePhpOffice\PhpSpreadsheet\Writer\Xlsx; #实例化Spreadsheet对象 $spreadsheet=newSpreadsheet(); #获取活动工作薄 $sheet=$

  • plsqldeveloper汉化包_plsql汉化包

    plsqldeveloper汉化包_plsql汉化包PLSQLDeveloper汉化补丁下载地址http://download.csdn.net/download/rxtanlian/10141249一、双击运行补丁二、选择你PLSQLDeveloper的安装目录看图三、点击蓝色三角形按钮四、继续下一步五、下一步,完成汉化六、完成七、重启你的PLSQLDeveloper效果就出来了,哈哈

    2022年10月12日
  • 计算机三级数据库要安装什么软件,计算机三级数据库技术题库app

    计算机三级数据库要安装什么软件,计算机三级数据库技术题库app介绍(2020-07-06)计算机三级数据库技术题库,本软件包含了大量计算机三级数据库技术题,对备战考试的朋友很有帮助。软件中包括以下内容:2011年春浙江省高等学校计算机等级考试试卷(三级数据库技术及应用)2011年9月计算机等级考试三级数据库试题2012年春浙江省高等院校计算机等级考试三级数据库技术笔试真题2012年秋浙江省高等学校计算机等级考试试卷(三级数据库技术及应用)计算机等级考试三…

  • office xls 文件已损坏 无法打开 word在试图打开文件时遇到错误

    office xls 文件已损坏 无法打开 word在试图打开文件时遇到错误转自:http://windyli.blog.51cto.com/1300305/326491故障现象:Office2010,当打开从其他来源的Office文档时,会出现“(受保护的视图)遇到问题需要关闭”的错误,并且提示“文档已损坏”。小提示:Office2010的新特性是打开非本机创建的文件时会使用受保护的视图打开,因此我的“其他来源”主要指几个方面。其他来源:1.

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号