当前位置: 首页 > news >正文

做捐款网站原画培训机构排行榜

做捐款网站,原画培训机构排行榜,文字转视频软件app,岳阳网站建设哪里便宜目录 1、矩阵的构造和初始化操作 2、矩阵的算术运算 3、矩阵的分解和求解 4、矩阵的变换 5、矩阵的访问和修改 6、矩阵遍历 7、线性方程组求解 8、其他操作 Eigen库是一个高级的C库#xff0c;用于线性代数#xff0c;矩阵和向量运算#xff0c;数值分析和相关的数学…目录 1、矩阵的构造和初始化操作 2、矩阵的算术运算 3、矩阵的分解和求解 4、矩阵的变换 5、矩阵的访问和修改 6、矩阵遍历 7、线性方程组求解 8、其他操作 Eigen库是一个高级的C库用于线性代数矩阵和向量运算数值分析和相关的数学运算。这个库提供了大量的矩阵操作功能。 1、矩阵的构造和初始化操作 Eigen::Matrix3f A; // 创建一个3x3的双精度浮点型矩阵A 1, 2, 3, 4, 5, 6, 7, 8, 9;cout3X3 float: \nAendl;Eigen::MatrixXf m Eigen::MatrixXf::Identity(3, 3); // 创建一个3x3的单位矩阵cout3X3 identity: \nmendl;Eigen::MatrixXf mf(3, 3); // 使用构造函数初始化默认初始化为0 Eigen::MatrixXi mi(3, 3); // 创建一个3x3的整型矩阵默认初始化为0cout3X3 mf: \nmfendl;cout3X3 mi: \nmiendl;Eigen::MatrixXf z Eigen::MatrixXf::Zero(3, 3); // 创建一个3x3的全0矩阵Eigen::MatrixXi n Eigen::MatrixXi::Ones(3, 3); // 创建一个3x3的全1矩阵cout3X3 Zero: \nzendl;cout3X3 Ones: \nnendl;Eigen::MatrixXf r Eigen::MatrixXf::Random(3, 3); // 创建一个3x3的随机矩阵cout3X3 random: \nrendl;float data[9] {1, 2, 3, 4, 5, 6, 7, 8, 9};Eigen::MapEigen::MatrixXf mp(data, 3, 3); // 将data数组映射为一个3x3的矩阵cout3X3 map mp: \nmpendl;Eigen::MatrixXf m_i(3, 3);m_i (Eigen::MatrixXf(3, 3)1, 2, 3, 4, 5, 6, 7, 8, 9).finished(); //对于动态大小的矩阵可以使用逗号初始化器但需要在初始化时指定大小coutinitializer m_i: \nm_iendl;Eigen::MatrixXf m_c m_i;coutcopy constructor m_c : \nm_cendl; 2、矩阵的算术运算 Eigen::MatrixXf m1 Eigen::MatrixXf::Identity(3, 3);Eigen::MatrixXf m2 Eigen::MatrixXf::Identity(3, 3);Eigen::Matrix3f sum m1 m2; // 矩阵加法 coutsum : \nsumendl;Eigen::MatrixXf diff m1 m2; // 矩阵减法 coutdiff : \ndiffendl;Eigen::MatrixXf scaled m1 * 2.0f; // 矩阵与标量的乘法 coutscaled : \nscaledendl;Eigen::MatrixXf product m1 * m2.transpose(); // 矩阵乘法coutproduct : \nproductendl;// 矩阵加法 Eigen::Matrix3f C A A;// 矩阵乘法 Eigen::Matrix3f D A * A.transpose();// 向量加法 Eigen::Vector4f e b b;// 点积内积 float dotProduct b.dot(b);// 转置 std::cout Transpose of A:\n A.transpose() std::endl;// 访问元素 std::cout Element (1, 1) of A: A(1, 1) std::endl;3、矩阵的分解和求解 Eigen::MatrixXf m1 Eigen::Matrix3f::Random();cout original matrix:\n m1 endl;// 对矩阵进行特征值分解Eigen::EigenSolverEigen::Matrix3f es(m1);cout eigenvalues:\n es.eigenvalues() endl; cout eigenvectors:\n es.eigenvectors() endl; // 假设我们有一个线性方程组 Ax bEigen::Vector3f b(1, 2, 3);cout vector b:\n b endl;// 使用列主元QR分解求解线性方程组Eigen::Vector3f x m1.colPivHouseholderQr().solve(b);cout Solution x:\n x endl; 4、矩阵的变换 Eigen::MatrixXf m1 Eigen::Matrix4f::Random();cout original matrix:\n m1 endl;// 获取矩阵的转置 Eigen::Matrix4f transposed m1.transpose();cout transposed:\n transposed endl; // 获取矩阵的对角线元素Eigen::Vector4f diagonal m1.diagonal();cout diagonal:\n diagonal endl; // 获取矩阵的逆注意需要先检查矩阵是否可逆if(m1.determinant() ! 0) // 使用行列式检查是否可逆{// 求逆矩阵Eigen::Matrix4f inv_m m1.inverse();cout inverse:\n inv_m endl; // 验证逆矩阵的正确性m * inv_m 应该接近单位矩阵Eigen::MatrixXf identity_check m1 * inv_m;cout identity check:\n identity_check endl; }else { cerr Matrix is singular and cannot be inverted. endl; } 5、矩阵的访问和修改 Eigen::MatrixXf m1 Eigen::Matrix4f::Random();cout original matrix:\n m1 endl;// 取出前3行和前3列的子矩阵Eigen::Matrix3f sub_matrix m1.block(0, 0, 3, 3);cout sub_matrix:\n sub_matrix endl;// 修改矩阵的元素 m1(1, 2) 10; // 将第2行第3列的元素设置为10// 访问矩阵的元素cout Element at (1, 2): m1(1, 2) endl;// 访问矩阵的第2行 Eigen::Vector4f row m1.row(1);cout row 2: row std::endl;// 访问矩阵的第2列 Eigen::Vector4f col m1.col(1);cout col 2: col std::endl;Eigen::MatrixXf m2 Eigen::Matrix3f::Random();cout original matrix:\n m2 endl;// 创建一个4x4的矩阵并初始化 Eigen::Matrix4f m4_4 Eigen::Matrix4f::Zero();// 将3x3矩阵赋值给4x4矩阵的前3行和前3列 m4_4.block(0, 0, 3, 3) m2;cout 4x4 matrix with 3x3 block assigned:\n m4_4 endl; //块操作 // 提取矩阵的第二列 Eigen::Vector3f column A.col(1);// 提取矩阵的前两行 Eigen::Matrix2f topRows A.topRows(2);6、矩阵遍历 3.1 使用迭代器遍历和打印#include iostream #include Eigen/Denseint main() {Eigen::MatrixXd mat(3, 4);mat 1, 2, 3, 4,5, 6, 7, 8,9, 0, 1, 2;// 遍历并打印矩阵的每一行for (int row 0; row mat.rows(); row) {for (Eigen::MatrixXd::RowIterator it mat.row(row).begin(); it ! mat.row(row).end(); it) {std::cout *it ;}std::cout \n;}Eigen::VectorXd vec(5);vec 3, 6, 9, 12, 15;// 遍历并打印向量的所有元素for (Eigen::VectorXd::Iterator it vec.begin(); it ! vec.end(); it) {std::cout *it ;}std::cout \n;return 0; }3.2 直接访问元素并打印 #include iostream #include Eigen/Denseint main() {Eigen::MatrixXd mat(3, 4);mat 1, 2, 3, 4,5, 6, 7, 8,9, 0, 1, 2;// 遍历并打印矩阵的每一行for (int row 0; row mat.rows(); row) {for (int col 0; col mat.cols(); col) {std::cout mat(row, col) ;}std::cout \n;}Eigen::VectorXd vec(5);vec 3, 6, 9, 12, 15;// 遍历并打印向量的所有元素for (int i 0; i vec.size(); i) {std::cout vec(i) ;}std::cout \n;return 0; } 7、线性方程组求解 // 假设A是已知的系数矩阵b是已知的右侧向量 Eigen::VectorXd x; Eigen::MatrixXd A(3, 3); Eigen::VectorXd b(3);// ... 初始化A和b ...// 使用LLT分解求解Axb Eigen::LLTEigen::MatrixXd llt(A); if (llt.info() Eigen::Success) {x llt.solve(b); } else {std::cerr LLT decomposition failed! std::endl; }// 输出解 std::cout Solution: x std::endl; 8、其他操作 Eigen::Matrix3f m1; // 创建一个3x3的双精度浮点型矩阵m1 1, 2, 3, 4, 5, 6, 7, 8, 9;// 计算矩阵的Frobenius范数float norm m1.norm();cout norm of the matrix: norm endl;Eigen::Matrix3f m2; // 创建一个3x3的双精度浮点型矩阵m2 1, 2, 3, 4, 5, 6, 7, 8, 9.0001f;// 检查两个矩阵是否近似相等这里使用1e-5作为精度阈值bool are_approx m1.isApprox(m2, 1e-5);cout are m1 and m2 approximately equal? (are_approx ? Yes : No) endl;
http://www.dnsts.com.cn/news/223026.html

相关文章:

  • 濮阳的网站建设东莞市官网网站建设品牌
  • 深圳建设很行住房公积金网站安阳网站制作 网络服务
  • dede织梦php文章图片网站源码 完整后台 带在线音乐搜索热词排名
  • 新加坡网站开发公司网站建设销售工作内容
  • 网站备案 假通信地址5080电影电视剧大全
  • 网站开发常用标签app源码网站
  • 怎么在主机上的建设网站wordpress 页面怎么添加表格
  • 网站建设柚子网络科技官网网页qq登录入口官网官方
  • 网站模板 数据库网站群 意义
  • 建设银行网站不能登录密码如何做商业推广网站
  • 莒县网站制作做门户网站主要技术哪一块
  • 呼和浩特网站建设哪家最便宜官方网站案例
  • 上海做网站公司有哪些网站未续费到期后打开会怎样
  • 25个优秀个人网站设计模板视频网站建设成本
  • 网站开发运维机构设置深圳组工在线
  • 做二手车网站怎么做的网站 空间 服务器 免费
  • 南阳网站优化公司百度识图网页版在线使用
  • 威海网站建设地址淘客网站做百度推广
  • 做网站需要用什么语言开发夸克浏览器看片
  • 网站备案 企业免费投票网站制作
  • 高中生自己做 网站网络安全工程师工作内容
  • 商贸有限公司网站案例网站项目建设背景
  • 中山市建设局投诉网站网站登陆系统怎么做
  • 代发网站建设教程谷歌推广培训
  • 学校网站html模板旅游投资公司网站建设
  • 个人做 下载类网站做设计开店的网站
  • 头条网站怎么做的广州开发网站建设
  • 健康饮食网站设计论文wordpress电影资源主题
  • 北京建设安全协会网站玛丁图商城网站开发
  • php做数据网站杭州公司注册地址租赁