我尝试从一个转换MatrixX*
为另一个(不是二次的,但具有正确的尺寸)。然而,我能找到的最好的是Transpose< Derived > ::transpose()
函数。
是否有一个调用将结果放入已经分配的矩阵而不是分配一个新的?
编辑:
实际上我是Eigen::Map
在 Matrix 上使用的。
typedef Eigen::Matrix<std::uint8_t, Eigen::Dynamic, Eigen::Dynamic> matrix_type;
typedef Eigen::Map<matrix_type> map_type;
const map_type src ( src_ptr , width , height );
map_type dest( dest_ptr, height, width );
map.transposeInPlace();
使用transposeInPlace()
会触发Derived& DenseBase<Derived>
::lazyAssign(const DenseBase<OtherDerived>& other)
.