Я пытаюсь вычислить SVD из Eigen :: Map .Например, этот код работает для некоторых matPointer , определенных ранее.
...
Eigen::Map<MatrixXd> eMat(matPointer,m_nRow,m_nCol);
Eigen::BDCSVD<MatrixXd> svdVal(eMat, Eigen::ComputeThinU | Eigen::ComputeThinV);
....
, но если я хочу добавить Stride в Eigen :: Map этот код получает ошибку сегментации
...
typedef Eigen::Stride<Eigen::Dynamic, Eigen::Dynamic> DynStride;
Eigen::Map<MatrixXd,0, DynStride> eMat(matPointer,m_nRow,m_nCol, DynStride(jumpX,jumpY));
Eigen::BDCSVD<MatrixXd> svdVal(eMat, Eigen::ComputeThinU | Eigen::ComputeThinV);
...
я проверил совместимость между m_nRow, m_nCol, jumpX, jumpY и проблем нет.Нужно ли изменить MatrixXd внутри Eigen :: BDCSVD на что-то другое, чтобы получить второй фрагмент кода?