下三角行列MatrixXdがあり、対称行列になるので、下の値を上にコピーしたいと思います。どうすればいいですか?
これまでのところ、私は次のことを行いました。
MatrixXd m(n,n);
.....
//do something with m
for(j=0; j < n; j++)
{
for(i=0; i<j; i++)
{
m(i,j) = m(j,i);
}
}
それを行うための最速の方法はありますか?下三角行列を上に「コピー」できる内部メソッドを考えていました。私がこの行列を持っているとしましょう、私たちは次のように呼びますm
:
1 2 3
4 5 6
7 8 9
私が取得する必要があるのm
は:
1 4 7
4 5 8
7 8 9
また、マトリックスの上部または下部に何かを実行させることができることも知っています。
MatrixXd m1(n,n);
m1 = m.triangularView<Eigen::Upper>();
cout << m1 <<endl;
1 2 3
0 5 6
0 0 9
しかし、私はまだ私が欲しいものを手に入れることができません...