特征矩阵[值],它是什么意思? 在C++中使用特征库编写以下示例: #include <iostream> #include <eigen3/Eigen/Core> using namespace Eigen; using namespace std; int main() { Matrix3f mat; Matrix3f m[11]; cout << mat << endl; cout << "\n" << m[11] << endl; }

特征矩阵[值],它是什么意思? 在C++中使用特征库编写以下示例: #include <iostream> #include <eigen3/Eigen/Core> using namespace Eigen; using namespace std; int main() { Matrix3f mat; Matrix3f m[11]; cout << mat << endl; cout << "\n" << m[11] << endl; },c++,eigen3,C++,Eigen3,第二个输出: 0 -2.51418e-31 0 2.96401e+17 -1.10025e+33 2.9625e+17 3.06324e-41 0 3.06324e-41 []操作员做什么? mat[value]与mat有何不同? 另一个问题:为什么本征函数会产生非常大或非常小的数,它们是随机的吗 附言:在第二个输出上,零始终是零,但其他数字正在更改声明 Matrix3f m[11]; 与Eigen没有多大关系。它是

第二个输出:

           0 -2.51418e-31            0
 2.96401e+17 -1.10025e+33   2.9625e+17
 3.06324e-41            0  3.06324e-41
[]
操作员做什么?
mat[value]
mat
有何不同? 另一个问题:为什么本征函数会产生非常大或非常小的数,它们是随机的吗

附言:在第二个输出上,零始终是零,但其他数字正在更改声明

Matrix3f m[11];
Eigen
没有多大关系。它是堆栈上的一个普通原始数组,包含11个
Eigen::Matrix3f
实例。当你

cout << "\n" << m[11] << endl;

cout这不是
操作符[]
。这是一个C型数组

int a[42];
定义一个名为
a
的42
int
s数组

在同一行中,对于类型
T
和正整数
N
,这:

T bla[N];
定义类型为
T
N
对象数组

所以你的代码

Matrix3f m[11];
定义11个
矩阵x3f
对象的数组

数组索引从0开始,因此最后一个有效索引是10,而不是代码中的11。 由于Eigen初始化其对象时不为零,因此在打印0-10个元素的值时会得到随机数

Matrix3f m[11];