是否有更短的方法来应用转换?
auto vecs = Matrix<float, Dynamic, 3>(); //vector in each row.
Affine3f transform = ...; // some Affine3 transform
for (int r = 0; r < vecs.rows(); r++) {
Vector3f v = vecs.row(r);
v = transform * v;
vecs.row(r) = v;
}
最佳答案
您可以直接对存储在矩阵中的一组列 vector 应用仿射
变换。由于 vector 是按行排列的,因此需要转置矩阵。因此,您的 for 循环减少为:
vecs.transpose() = transform * vecs.transpose();
关于c++ - 将变换应用于特征中包含 vector 的矩阵的更短方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38841606/