【发布时间】:2014-05-01 18:44:15
【问题描述】:
我想将文件中的数据读入 Eigen 中的矩阵。我已经编写了所有代码,但是遇到了一个问题。我事先还不知道文件中有多少数据点,所以我希望能够在不指定矩阵大小的情况下初始化矩阵。我知道以下初始化矩阵的方法在 Eigen 中有效:
MatrixXd A;
但现在如果我再这样做
A << 1, 2,
4, 7;
它不起作用。我曾希望它在这个例子中将它识别为一个 2x2 矩阵,以便我可以使用它。所以基本上我的问题是,如何向 A 添加数据,而无需指定其大小?
【问题讨论】:
-
你的意思是它不起作用? Here 您在文档中有一个相同的示例。
-
@luk32 不,他们在那里指定大小:3x3 矩阵。不起作用意味着它不接受它作为有效语法;换句话说,程序崩溃了。
-
你点击
here了吗?Matrix3f m; m << 1, 2, 3, 4, 5, 6, 7, 8, 9; std::cout << m;那是代码。你能说出不起作用是什么意思吗? -
@luk32 是的,当然。那你指的是哪个例子?那里的例子用
Matrix3f初始化,这不一样,3已经指定了大小。 -
@luk32 不同的是他们通过
Matrix3f直接指定为3x3矩阵。我不想那样做。如果您查看我的语法,我指定了MatrixXd,所以我有一个“X”,其中有一个“3”表示大小未知。