Вы можете объявить шаг с помощью Eigen::Map
следующим образом:
int main()
{
constexpr int d = 10;
MatrixXi m(d,d);
VectorXi lin = VectorXi::LinSpaced(d*d, 0, d*d-1);
m = Map<MatrixXi>(lin.data(), d, d);
std::cout << m << "\n\n";
std::cout << Map<MatrixXi, 0, InnerStride<2>>(m.data() + d + 1, 3, 3) << "\n\n";
std::cout << Map<MatrixXi, 0, OuterStride<d>>(m.data() + d + 1, 3, 3) << "\n\n";
// You probably want either this:
std::cout << Map<MatrixXi, 0, Stride<d, 2>> (m.data() + d + 1, 3, 3) << "\n\n";
// or this:
std::cout << Map<MatrixXi, 0, Stride<2*d, 2>>(m.data() + d + 1, 3, 3) << "\n\n";
return 0;
}
Обратите внимание, что вы также можете установить шаг во время выполнения. Подробнее см. документацию .