C++11 本征距离初始化

C++11 本征距离初始化,c++11,eigen,eigen3,C++11,Eigen,Eigen3,我试图使用Eigen3生成一个2d浮点矩阵(num\u samples,num\u ranges),这样每一列都是一个连续间隔的范围[0,num\u samples)就像[0,1,2…num\u samples-1] 我目前正在通过使用std::iota创建一个类似的2dstd::vector,然后将其转换为特征2d矩阵来实现这一点 在Eigen中有没有更快更简单的方法呢?如果我理解正确,你希望矩阵是这样的 0 1 2 三三三 对于4x4矩阵。为此,您可以使用LinSpaced(对于单个列)和r

我试图使用Eigen3生成一个2d浮点矩阵
(num\u samples,num\u ranges)
,这样每一列都是一个连续间隔的范围
[0,num\u samples)
就像
[0,1,2…num\u samples-1]

我目前正在通过使用
std::iota
创建一个类似的2d
std::vector
,然后将其转换为特征2d矩阵来实现这一点


在Eigen中有没有更快更简单的方法呢?

如果我理解正确,你希望矩阵是这样的

0
1
2
三三三

对于4x4矩阵。为此,您可以使用
LinSpaced
(对于单个列)和replicate(复制该列)的组合:

int行=5;
int cols=4;
Eigen::MatrixXd m=Eigen::VectorXd::LinSpaced(行,0.0,行-1)。复制(1,cols);

如果我理解正确,你希望矩阵是这样的

0
1
2
三三三

对于4x4矩阵。为此,您可以使用
LinSpaced
(对于单个列)和replicate(复制该列)的组合:

int行=5;
int cols=4;
Eigen::MatrixXd m=Eigen::VectorXd::LinSpaced(行,0.0,行-1)。复制(1,cols);
标准::cout
int rows = 5;
int cols = 4;
Eigen::MatrixXd m = Eigen::VectorXd::LinSpaced(rows, 0.0, rows - 1).replicate(1, cols);
std::cout << m;