トランスフォームを適用する方法はありますか?Eigenのベクトルを含む行列に変換を適用する短い方法?
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;
}
短いとは、あなたのforループの3つの行を1つに凝縮するようなものですか? - 'vecs.row(r)* = transform'? –
@JohnnyHenlyこれは 'vecs.row(r)= vecs.row(r)* transform;と同じですが、これは一般的には同等ではありません! – immibis
Forループは、固有ベクトルのような行列ライブラリにとって非常に厄介です。私は、単一の関数呼び出しにforループを折りたたむいくつかのより良い機能が期待されます。 – JE42