特征范围初始化

tan*_*ngy 0 eigen c++11 eigen3

我正在尝试使用 Eigen3 生成一个 2d 浮点矩阵,(num_samples, num_ranges)这样每一列都是与[0, num_samples)like的连续间隔范围[0, 1, 2 ... num_samples - 1]

我目前正在通过创建一个类似的 2d std::vectorwithstd::iota然后将其转换为 Eigen 2d 矩阵来实现这一点。

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

Avi*_*urg 5

如果我理解正确,你希望矩阵像

0 0 0 0
1 1 1 1
2 2 2 2
3 3 3 3

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

int rows = 5;
int cols = 4;
Eigen::MatrixXd m = Eigen::VectorXd::LinSpaced(rows, 0.0, rows - 1).replicate(1, cols);
std::cout << m;
Run Code Online (Sandbox Code Playgroud)