2017-07-18 1695 views
0

其实我的问题很简单,我正在寻找从循环中构造vector(或ma)的最有效方法。 在Matlab中我们做:M = [1:10]如何在Eigen中做同样的事情?Eigen :: MatrixXd初始化

+1

尝试'LinSpaced'或'setLinSpaced':HTTP://eigen.tuxfamily。 org/dox/classEigen_1_1DenseBase.html#a5d1ce9e801fa502e02b9b8cd9141ad0a – chtz

回答

0

感谢chtz,其实这是我想要的东西,所以在M=[1:10] MATLAB在C++相当于用征来:

Matrix<double,Dynamic,1>   M; //or VectorXd M 
M = VectorXd::LinSpaced(9,1,10); // M.setLinSpaced(9,1,10) 
+0

一些说法:'Matrix '与'VectorXd'相同。除了第二行,您还可以编写'M.setLinSpaced(9,1,10);',或者您可以将该赋值写入构建'M'的行中。我假设第一个参数应该是'10'而不是'9',如果你想得到和matlab相同的结果。 – chtz

+0

再次感谢chtz。 –