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

如何做拼多多商城官网站河南网络推广公司

如何做拼多多商城官网站,河南网络推广公司,网站建设交易中心,辽宁建设厅网站文章目录 eigen矩阵初始化多维矩阵矩阵和向量size固定大小or 动态大小Matrix类六个模板参数初始化向量元素类型 参考文献 eigen 矩阵初始化 多维矩阵 数组 MatrixXi a { // construct a 2x2 matrix{1, 2}, // first row{3, 4} // second row }; Matrix<do…

文章目录

  • eigen
    • 矩阵初始化
      • 多维矩阵
      • 矩阵和向量size
      • 固定大小or 动态大小
      • Matrix类六个模板参数
      • 初始化向量
      • 元素类型
  • 参考文献

eigen

矩阵初始化

多维矩阵

  • 数组
MatrixXi a {      // construct a 2x2 matrix{1, 2},     // first row{3, 4}      // second row
};
Matrix<double, 2, 3> b {{2, 3, 4},{5, 6, 7},
};
#include <iostream>
#include "f:/learn/eigen-3.4.0/Eigen/Dense"using Eigen::Matrix;
int main()
{Matrix<int,3,2> a {{1, 2}, {3, 4}, {5, 6}};std::cout << a<< std::endl;
}
1 2
3 4
5 6Process returned 0 (0x0)   execution time : 0.117 s
Press any key to continue.
  • 重定向操作符
Matrix3f m;
m << 1, 2, 3,4, 5, 6,7, 8, 9;
std::cout << m;
1 2 3
4 5 6
7 8 9

矩阵和向量size

  • rows:矩阵行
  • cols:矩阵列
  • resize:重新规划size
#include <iostream>
#include "e:/eigen/Eigen/Dense"
using namespace std;
using namespace Eigen;
int main()
{MatrixXf m(2,5);cout << "The matrix m is of size "<< m.rows() << "x" << m.cols() << std::endl;m.resize(4,3);cout << "The matrix m resized is of size "<< m.rows() << "x" << m.cols() << std::endl;cout << "It has " << m.size() << " coefficients" << std::endl;VectorXf v(2);cout << "The vector v is of size " << v.size() << std::endl;v.resize(5);cout << "The vector v resized is of size " << v.size() << std::endl;cout << "As a matrix, v is of size "<< v.rows() << "x" << v.cols() << std::endl;
}
The matrix m is of size 2x5
The matrix m resized is of size 4x3
It has 12 coefficients
The vector v is of size 2
The vector v resized is of size 5
As a matrix, v is of size 5x1Process returned 0 (0x0)   execution time : 0.317 s
Press any key to continue.

固定大小or 动态大小

什么时候应该使用固定大小(例如Matrix4f),什么时候应该使用动态大小(例如MatrixXf)?

  • 简单的答案是:对于非常小的尺寸尽可能使用固定大小,对于较大的尺寸或必须使用动态大小。对于较小的大小,特别是小于(大约)16的大小,使用固定大小对性能非常有益,因为它允许Eigen避免动态内存分配并展开循环。
  • 当然,使用固定大小的限制是,只有在编译时知道大小时才有可能。此外,对于足够大的大小,例如大于(大约)32的大小,使用固定大小的性能优势变得可以忽略不计。
  • 更糟糕的是,尝试在函数内部使用固定大小创建一个非常大的矩阵可能会导致堆栈溢出,因为Eigen会尝试将数组自动分配为局部变量,而这通常是在堆栈上完成的。

Matrix类六个模板参数

  • 模板参数
Matrix<typename Scalar,int RowsAtCompileTime,int ColsAtCompileTime,int Options = 0,int MaxRowsAtCompileTime = RowsAtCompileTime,int MaxColsAtCompileTime = ColsAtCompileTime>
  • Options是位字段。
    RowMajor。它指定这种类型的矩阵使用行为主存储顺序;默认情况下,存储顺序是以列为主的。请参阅存储订单页面。例如,此类型表示行为主的3x3矩阵:
  Matrix<float, 3, 3, RowMajor>
  • MaxRowsAtCompileTime和MaxColsAtCompileTime
    在需要指定时非常有用,即使在编译时不知道矩阵的确切大小,但在编译时知道一个固定的上限。这样做的最大原因可能是为了避免动态内存分配。例如,下面的矩阵类型使用12个浮点数的普通数组,没有动态内存分配
Matrix<float, Dynamic, Dynamic, 0, 3, 4>
  • 存储顺序详解
    矩阵和二维数组有两种不同的存储顺序:列为主和行为主
    当矩阵存储在内存中时,条目必须以某种方式线性排列。有两种主要的方法可以做到这一点,按行和按列。
  1. 如果一个矩阵是逐行存储的,我们就说它是按行主序存储 row-major的。首先存储整个第一行,然后是整个第二行,依此类推。以矩阵为例
    在这里插入图片描述
8 2 2 9 9 1 4 4 3 5 4 5 
  1. 如果一个矩阵是按列存储 column-major 的,那么它是以列为主顺序存储的,从整个第一列开始,然后是整个第二列,依此类推。若将上述矩阵按列主序存储,则其布局如下:
8 9 3 2 1 5 2 4 4 9 4 5 

3、例
定义一个4*3的矩阵A,然后分别以按行或按列存储。
使用PlainObjectBase::data()函数,该函数返回指向矩阵第一个条目的内存位置的指针。

#include <iostream>
#include "e:/eigen/Eigen/Dense"
using namespace std;
using namespace Eigen;
int main()
{Matrix<int, 4, 3, ColMajor> Acolmajor;Acolmajor << 1,2,3,4,5,6,7,8,9,10,11,12;cout << "The matrix A:" << endl;cout << Acolmajor << endl << endl;cout << "In memory (column-major):" << endl;for (int i = 0; i < Acolmajor.size(); i++)cout << *(Acolmajor.data() + i) << "  ";cout << endl << endl;Matrix<int, 4, 3, RowMajor> Arowmajor = Acolmajor;cout << "In memory (row-major):" << endl;for (int i = 0; i < Arowmajor.size(); i++)cout << *(Arowmajor.data() + i) << "  ";cout << endl;
}
The matrix A:1  2  34  5  67  8  9
10 11 12In memory (column-major):
1  4  7  10  2  5  8  11  3  6  9  12In memory (row-major):
1  2  3  4  5  6  7  8  9  10  11  12Process returned 0 (0x0)   execution time : 0.404 s
Press any key to continue.
  • Matrix类模板有六个模板参数,其中三个是强制性的(Scalar, RowsAtCompileTime和ColsAtCompileTime),另外三个是可选的(Options, MaxRowsAtCompileTime和MaxColsAtCompileTime)。如果Options参数设置为RowMajor,则矩阵或数组按行主要顺序存储;如果设置为ColMajor,则按列主顺序存储。该机制在上述特征程序中用于指定存储顺序。

  • 如果未指定存储顺序,则Eigen默认以列为主的方式存储条目。如果使用方便类型(Matrix3f、ArrayXXd等)之一,也会出现这种情况。

  • 使用一种存储顺序的矩阵和数组可以分配给使用另一种存储顺序的矩阵和数组,就像上面的程序中使用Acolmajor初始化Arowmajor时发生的那样。Eigen将自动重新排序条目。更一般地说,行为主矩阵和列为主矩阵可以在表达式中混合使用。

  • 您应该在程序中使用哪种存储顺序呢?这个问题没有简单的答案;这取决于您的应用程序。以下是一些需要牢记的要点:

1.您的用户可能希望您使用特定的存储顺序。或者,您可以使用Eigen以外的其他库,这些库可能需要特定的存储顺序。在这些情况下,在整个程序中使用这种存储顺序可能是最简单和最快的。
2.当矩阵以行为主的顺序存储时,由于更好的数据局部性,逐行遍历矩阵的算法将运行得更快。类似地,对于列主矩阵,逐列遍历更快。为了找出适合您的特定应用程序的更快的方法,进行一些实验可能是值得的。
3.缺省情况下,Eigen是列为主的。自然地,大多数特征库的开发和测试都是用列主矩阵完成的。这意味着,尽管我们的目标是透明地支持列为主和行为主的存储顺序,但Eigen库可能最适合列为主的矩阵。

初始化向量

#include <iostream>
#include "f:/learn/eigen-3.4.0/Eigen/Dense"using Eigen::VectorXd;
using Eigen::RowVectorXd;
int main()
{VectorXd a {{1.5, 2.5, 3.5}};RowVectorXd b {{1.0, 2.0, 3.0, 4.0}};std::cout << a<< std::endl;std::cout << b<< std::endl;
}
1.5
2.5
3.5
1 2 3 4Process returned 0 (0x0)   execution time : 0.110 s
Press any key to continue.

元素类型

MatrixNt for Matrix<type, N, N>. For example, MatrixXi for Matrix<int, Dynamic, Dynamic>.
MatrixXNt for Matrix<type, Dynamic, N>. For example, MatrixX3i for Matrix<int, Dynamic, 3>.
MatrixNXt for Matrix<type, N, Dynamic>. For example, Matrix4Xd for Matrix<d, 4, Dynamic>.
VectorNt for Matrix<type, N, 1>. For example, Vector2f for Matrix<float, 2, 1>.
RowVectorNt for Matrix<type, 1, N>. For example, RowVector3d for Matrix<double, 1, 3>.
  • N可以是2、3、4或X中的任意一个(表示动态)。
  • T可以是I (int)、f (float)、d (double)、cf (complex)或CD (complex)中的任意一个。虽然只为这五种类型定义了类型定义,但这并不意味着它们是唯一受支持的标量类型

参考文献

  1. Eigen

文章转载自:
http://wanjiaaberrant.Lbqt.cn
http://wanjiasmallness.Lbqt.cn
http://wanjiaworldlet.Lbqt.cn
http://wanjiapotash.Lbqt.cn
http://wanjiaoscillogram.Lbqt.cn
http://wanjiaconchology.Lbqt.cn
http://wanjialimberneck.Lbqt.cn
http://wanjiainbreed.Lbqt.cn
http://wanjiahaloplankton.Lbqt.cn
http://wanjiacenote.Lbqt.cn
http://wanjiathereout.Lbqt.cn
http://wanjiaprolongable.Lbqt.cn
http://wanjiasyneresis.Lbqt.cn
http://wanjiahospitalism.Lbqt.cn
http://wanjiacobwebbery.Lbqt.cn
http://wanjiasurvival.Lbqt.cn
http://wanjiabuckhound.Lbqt.cn
http://wanjiagreenly.Lbqt.cn
http://wanjiarecommencement.Lbqt.cn
http://wanjiagcmg.Lbqt.cn
http://wanjiaintemerate.Lbqt.cn
http://wanjiabrinkman.Lbqt.cn
http://wanjiariskily.Lbqt.cn
http://wanjiaremilitarization.Lbqt.cn
http://wanjiathallogen.Lbqt.cn
http://wanjialactescence.Lbqt.cn
http://wanjiaspatterware.Lbqt.cn
http://wanjiacronus.Lbqt.cn
http://wanjiaprelate.Lbqt.cn
http://wanjiaparang.Lbqt.cn
http://wanjiaidolum.Lbqt.cn
http://wanjiacondensery.Lbqt.cn
http://wanjiareplevy.Lbqt.cn
http://wanjiazoodynamics.Lbqt.cn
http://wanjialand.Lbqt.cn
http://wanjiariksha.Lbqt.cn
http://wanjiaaswirl.Lbqt.cn
http://wanjiatafferel.Lbqt.cn
http://wanjiacasual.Lbqt.cn
http://wanjiacool.Lbqt.cn
http://wanjiatannable.Lbqt.cn
http://wanjialeukoderma.Lbqt.cn
http://wanjiaushas.Lbqt.cn
http://wanjiapostclassic.Lbqt.cn
http://wanjiahexachord.Lbqt.cn
http://wanjiamyelogenic.Lbqt.cn
http://wanjiajotunnheim.Lbqt.cn
http://wanjiapositronium.Lbqt.cn
http://wanjiaalif.Lbqt.cn
http://wanjiaeonomine.Lbqt.cn
http://wanjiaadiabat.Lbqt.cn
http://wanjiawaterlocked.Lbqt.cn
http://wanjiaunfillable.Lbqt.cn
http://wanjiahyperemization.Lbqt.cn
http://wanjiaalkaline.Lbqt.cn
http://wanjiaochrea.Lbqt.cn
http://wanjiapointedly.Lbqt.cn
http://wanjialandholder.Lbqt.cn
http://wanjiascotland.Lbqt.cn
http://wanjiadegradability.Lbqt.cn
http://wanjiawhalemeat.Lbqt.cn
http://wanjialamentable.Lbqt.cn
http://wanjiamyriameter.Lbqt.cn
http://wanjiaserpentinite.Lbqt.cn
http://wanjiafolliculin.Lbqt.cn
http://wanjiapersia.Lbqt.cn
http://wanjiagoramy.Lbqt.cn
http://wanjiastrobilation.Lbqt.cn
http://wanjiawardroom.Lbqt.cn
http://wanjiamayo.Lbqt.cn
http://wanjiausury.Lbqt.cn
http://wanjiacornual.Lbqt.cn
http://wanjiaaerotropism.Lbqt.cn
http://wanjiacondignly.Lbqt.cn
http://wanjiakook.Lbqt.cn
http://wanjiagrillage.Lbqt.cn
http://wanjiapudendum.Lbqt.cn
http://wanjiabrowny.Lbqt.cn
http://wanjiaformer.Lbqt.cn
http://wanjiacatfacing.Lbqt.cn
http://www.15wanjia.com/news/116286.html

相关文章:

  • 免费html5网站源码快手作品推广网站
  • 陕西西安网站建设安徽关键词seo
  • 工 投标做哪个网站好营销软文500字范文
  • wordpress mu功能seo顾问服务
  • idc网站建设市场调研报告ppt
  • 网站的开发与设计千度搜索引擎
  • 如何在网站开发国外大客户信息流广告公司一级代理
  • 企业网站建设需要开什么发票百度关键词搜索指数
  • 长春网站优化公司seo技术306
  • 温州网站建设成功案例深圳全网营销型网站
  • 关于做教育新闻的网站seo优化 搜 盈seo公司
  • 网站根验证文件在哪上海的重大新闻
  • seo案例网站品牌服务推广
  • 代做机械设计的网站网络营销的主要工作有哪些
  • php做的网站论文超级外链
  • 定制衣服app软件哪个好北京网站建设东轩seo
  • 网站定做企业培训考试
  • wordpress图片网站b站2020推广网站
  • 英国三大运营商开鲁seo网站
  • 佟年帮韩商言做网站是第几集seo网站快排
  • 网站制作项目网站制作多少钱
  • 国外做情趣用品比较有名的网站今日热点新闻2022
  • 爱彩人网站怎么做免费的自助建站
  • 营销型企业网站建设体会网络营销和传统营销的区别和联系
  • 深圳网站制作公司嘉兴百度学术论文查重免费检测
  • 淘宝客网站做的好的网络科技公司经营范围
  • 橙子建站是监控手机最有效的100个营销方法
  • wordpress虚拟币接口解释seo网站推广
  • 有源码帮忙搭建网站吗seo优化师培训
  • 贵阳网站托管长沙正规seo优化价格