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

5118网站项目加盟代理商

5118网站,项目加盟代理商,seo沈阳,叫别人做网站要给什么东西1. Matrix类 在Eigen#xff0c;所有的矩阵和向量都是Matrix模板类的对象#xff0c;Vector只是一种特殊的矩阵#xff08;一行或者一列#xff09;。 Matrix有6个模板参数#xff0c;主要使用前三个参数#xff0c;剩下的有默认值。 Matrixtypename Scalar, int Ro…1. Matrix类 在Eigen所有的矩阵和向量都是Matrix模板类的对象Vector只是一种特殊的矩阵一行或者一列。 Matrix有6个模板参数主要使用前三个参数剩下的有默认值。 Matrixtypename Scalar, int RowsAtCompileTime, int ColsAtCompileTime Scalar是表示元素的类型RowsAtCompileTime为矩阵的行ColsAtCompileTime为矩阵的列。 库中提供了一些类型便于使用比如 typedef Matrixfloat, 4, 4 Matrix4f; 2. Vectors向量 列向量 typedef Matrixfloat, 3, 1 Vector3f; 行向量 typedef Matrixint, 1, 2 RowVector2i; 3. Dynamic Eigen不只限于已知大小编译阶段的矩阵有些矩阵的尺寸是运行时确定的于是引入了一个特殊的标识符Dynamic typedef Matrixdouble, Dynamic, Dynamic MatrixXd; typedef Matrixint, Dynamic, 1 VectorXi; Matrixfloat, 3, Dynamic 4. 构造函数 默认的构造函数不执行任何空间分配也不初始化矩阵的元素。 Matrix3f a; MatrixXf b; 这里a是一个3*3的矩阵分配了float[9]的空间但未初始化内部元素b是一个动态大小的矩阵定义是未分配空间(0*0)。 指定大小的矩阵只是分配相应大小的空间未初始化元素。 MatrixXf a(10,15); VectorXf b(30); 这里a是一个10*15的动态大小的矩阵分配了空间但未初始化元素b是一个30大小的向量同样分配空间未初始化元素。 为了对固定大小和动态大小的矩阵提供统一的API对指定大小的Matrix传递sizes也是合法的传递也被忽略。 Matrix3f a(3,3); 可以用构造函数提供4以内尺寸的vector的初始化。 Vector2d a(5.0, 6.0); Vector3d b(5.0, 6.0, 7.0); Vector4d c(5.0, 6.0, 7.0, 8.0); 5. 获取元素 通过中括号获取元素对于矩阵是行列对于向量只是传递它的索引以0为起始。 #include iostream #include Eigen/Dense using namespace Eigen; 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 Here is the matrix m:\n m std::endl; VectorXd v(2); v(0) 4; v(1) v(0) - 1; std::cout Here is the vector v:\n v std::endl; } 输出 Here is the matrix m: 3  -1 2.5 1.5 Here is the vector v: 4 3 m(index)也可以用于获取矩阵元素但取决于matrix的存储顺序默认是按列存储的当然也可以改为按行。 []操作符可以用于向量元素的获取但是不能用于matrix因为C中[]不能传递超过一个参数。 6. 逗号初始化 Matrix3f m; m 1, 2, 3, 4, 5, 6, 7, 8, 9; std::cout m; 7. resizing matrix的大小可以通过rows()、cols()、size()获取resize()可以重新调整动态matrix的大小。 #include iostream #include Eigen/Dense using namespace Eigen; int main() { MatrixXd m(2,5); m.resize(4,3); std::cout The matrix m is of size m.rows() x m.cols() std::endl; std::cout It has m.size() coefficients std::endl; VectorXd v(2); v.resize(5); std::cout The vector v is of size v.size() std::endl; std::cout As a matrix, v is of size v.rows() x v.cols() std::endl; } 输出 The matrix m is of size 4x3 It has 12 coefficients The vector v is of size 5 As a matrix, v is of size 5x1 如果matrix的实际大小不改变resize函数不做任何操作。resize操作会执行析构函数元素的值会被改变如果不想改变执行 conservativeResize()。 为了统一API所有的操作可用于指定大小的matrix当然实际中它不会改变大小。尝试去改变一个固定大小的matrix到一个不同的值会出发警告失败。只有如下是合法的。 #include iostream #include Eigen/Dense using namespace Eigen; int main() { Matrix4d m; m.resize(4,4); // no operation std::cout The matrix m is of size m.rows() x m.cols() std::endl; } 8. assignment 和 resizing assignment分配是复制一个矩阵到另外一个操作符。Eigen会自动resize左变量大小等于右变量大小比如 MatrixXf a(2,2); std::cout a is of size a.rows() x a.cols() std::endl; MatrixXf b(3,3); a b; std::cout a is now of size a.rows() x a.cols() std::endl; a is of size 2x2 a is now of size 3x3 当然如果左边量是固定大小的上面的resizing是不允许的。 9. 固定尺寸 vs 动态尺寸 实际中应该使用固定尺寸还是动态尺寸简单的答案是小的尺寸用固定的大的尺寸用动态的。使用固定尺寸可以避免动态内存的开辟固定尺寸只是一个普通数组。 Matrix4f mymatrix; 等价于 float mymatrix[16]; MatrixXf mymatrix(rows,columns); 等价于 float *mymatrix new float[rows*columns]; 使用固定尺寸(4*4)需要编译前知道矩阵大小而且对于足够大的尺寸如大于32固定尺寸的收益可以忽略不计而且可能导致栈崩溃。而且基于环境Eigen会对动态尺寸做优化类似于std::vector 10. 其他模板参数 上面只讨论了前三个参数完整的模板参数如下 Matrixtypename Scalar, int RowsAtCompileTime, int ColsAtCompileTime, int Options 0, int MaxRowsAtCompileTime RowsAtCompileTime, int MaxColsAtCompileTime ColsAtCompileTime Options是一个比特标志位这里我们只介绍一种RowMajor它表明matrix使用按行存储默认是按列存储。Matrixfloat, 3, 3, RowMajor MaxRowsAtCompileTime和MaxColsAtCompileTime表示在编译阶段矩阵的上限。主要是避免动态内存分配使用数组。 Matrixfloat, Dynamic, Dynamic, 0, 3, 4 等价于 float [12] 11. 一些方便的定义 Eigen定义了一些类型 MatrixNt Matrixtype, N, N 特殊地有 MatrxXi Matrixint, Dynamic, DynamicVectorNt Matrixtype, N, 1 比如 Vector2f Matrixfloat, 2, 1RowVectorNt Matrixtype, 1, N 比如 RowVector3d Matrixdouble, 1, 3N可以是2,3,4或X(Dynamic) t可以是i(int)、f(float)、d(double)、cf(complex)、cd(complex)等。
http://www.pierceye.com/news/489823/

相关文章:

  • 网站建设的实验步骤wordpress linux 建站教程
  • 哪个网站专门做邮轮旅游的加拿大28平台微信
  • 网站设置的用途wordpress 5.1 运行环境
  • 中小企业服务中心网站建设网站域名中文后缀
  • 龙武工会网站怎么做5173游戏交易网站源码
  • 网站建设设计时代创信好海南城乡和住房建设厅网站
  • 大连最好的做网站的公司崇义做网站
  • 圣弘建设股份有限公司网站上海图文设计有限公司
  • gta5资产网站正在建设零基础自学设计
  • 深圳专业制作网站公司吗网站信息化建设报送
  • 苏州网站建设运营推广网站一年多少钱?
  • WordPress国外主机湖北短视频seo营销
  • 南通网站建设电话设计一个网站要多少钱
  • 好的模板网站建设网站规划 时间
  • 昆明seocn整站优化网站建设如何报价
  • 网页设计模板免费网站WordPress生成网站地图
  • 做网站 侵权做外贸怎么看外国网站
  • 网站建设知识点的总结普通网站建设是什么
  • 杭州网站建设费用多少合肥高新城建设计院网站
  • 炫酷特效网站asa8.4 做网站映射
  • 郑州租赁房网站建设九江快乐城
  • 手机网站建站教育模板微信网站 教程
  • 网站的结构犀牛云做网站多少钱
  • 网站服务器用什么配置公司网站建设的视频教程
  • idea做网站网络营销与网站推广的区别
  • 建一家网站多少钱微信小程序在哪里查找
  • 东阳网站推广英文网站源码下载
  • 介绍湛江网站高端网站建设网站定制
  • 网站的特征包括哪些方面wordpress缓存插件 w3
  • 东莞专业网站营销wordpress新建页面模板