Вычислить SVD в Eigen :: Map with Stride - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь вычислить 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 на что-то другое, чтобы получить второй фрагмент кода?

...