1 Eigen::Matrix2d mat; 2 mat<<1,2, 3 3,4; 4 cout<<"矩阵所有系数之和:"<<mat.sum();//1+2+3+4=10 5 cout<<"矩阵系数的乘积:"<<mat.prod();//1*2*3*4=24 6 cout<<"矩阵系数的平均数:"<<mat.mean();//(1+2+3+4)/10=2.5 7 cout<<"矩阵最小的系数:"<<mat.minCoeff();//1 8 cout<<"矩阵最大的系数:"<<mat.maxCoeff();//4 9 cout<<"矩阵的迹:"<<mat.trace();//1+4=5 10 VectorXf v(2); 11 MatrixXf m(2,2),n(2,2); 12 v<<-1,2; 13 m<<1,-2, 14 -3,4; 15 cout<<"向量v的系数平方和:"<<v.squaredNorm();//(-1)^2+2^2=5 16 cout<<"向量v的系数平方和开方:"<<v.norm();//((-1)^2+2^2)^0.5=2.23607 17 cout<<"向量v的p次方和:"<<v.lpNorm<1>();//模板函数,1为一次方和,3为三次方和, 结果xiang为3 18 cout<<"向量v系数绝对值最大值:"<<v.lpNorm<Infinity>();//2 19 cout<<"矩阵m系数平方和:"<<m.squareNorm();//30 20 cout<<"矩阵m系数平方和再开方:"<<m.norm();//5.47723 21 cout<<"矩阵m的p次方和:"<<m.lpNorm<1>();//模板函数,1为矩阵系数绝对值之后,其他为N次方之和 22 cout<<"矩阵m系数绝对值最大值:"<<m.lpNorm<Infinity>();//4 23 Eigen::Matrix2d mat; 24 mat<<1,-2, 25 -3,4; 26 cout<<"矩阵系数取绝对值:"<<mat.cwiseAbs();//mat=(1,2,3,4) 27 ArrayXXf a(2,2); 28 mat<<1,2, 29 3,4; 30 cout<<"如果数组所有系数大于0,返回true,否则返回false"<<(a>0).all();//true 31 cout<<"如果数组存在一个系数大于0,返回true,否则返回false"<<(a>0).any();//true 32 cout<<"返回数组大于0的系数的个数"<<(a>0).count();//4 33 cout<<"如果数组所有系数大于2,返回true,否则返回false"<<(a>2).all();//0 34 cout<<"如果数组存在一个系数大于2,返回true,否则返回false"<<(a>2).any();//true 35 cout<<"返回数组大于2的系数的个数"<<(a>2).count();//2 36 Eigen::MatrixXf m(2,2); 37 m<<1,2, 38 3,4; 39 MatrixXf::Index maxRow,maxCol,minRow,minCol; 40 float max=m.maxCoeff(&maxRow,&maxCol); 41 float min=m.minCoeff(&minRow,&minCol); 42 cout<<"矩阵中最大元素所在位置:("<<maxRow<<","<<maxCol<<")";//(1,1) 43 cout<<"矩阵中最小元素所在位置:("<<minRow<<","<<minCol<<")";//(0,0) 44 Eigen::MatrixXf m(2,4); 45 m<<1,2,6,9, 46 3,1,7,2; 47 cout<<"输出每一列的最大值:"<<m.colwise().maxCoeff();//3,2,7,9 48 cout<<"输出每一行的最大值:"<<m.rowwise().maxCoeff();//9,7 49 Eigen::MatrixXf m(2,4); 50 m<<1,2,6,9, 51 3,1,7,2; 52 MatrixXf::Index maxindex; 53 float max=m.colwise().sum().maxCoeff(&maxindex); 54 cout<<"矩阵每列系数和,然后每一列和的最大值的列数"<<maxindex;//第3列,即2 55 cout<<"输出第三列"<<m.col(maxindex);//6,7 56 cout<<"输出最大的和:"<<max;//13 57 Eigen::MatrixXf m(2,4),n(2,4); 58 Eigen::VectorXf v(2); 59 Eigen::RowVectorXf u(4); 60 m<<1,2,6,9, 61 3,1,7,2; 62 v<<0,1; 63 n<<0,1,2,3; 64 m.colwise()+=v;//m中每一列加向量v 65 n=m; 66 n.rowwise()+=u; 67 cout<<"矩阵每一列加向量v:"<<m;//1,2,6,9,4,2,8,3 68 cout<<"矩阵每一行加向量u:"<<n;//1,3,8,12,3,2,9,5 69 Eigen::MatrixXf m(2,4); 70 Eigen::VectorXf v(2); 71 m<<1,23,6,9, 72 3,11,7,2; 73 v<<2,3; 74 MatrixXf::Index index; 75 (m.colwise()-v).colwise().squareNorm().minCoeff(&index); 76 cout<<"求矩阵m每列距离向量V最小距离的一列"<<index;//0 77 cout<<"输出距离向量V最小的列向量:"<<m.col(index);//1,3