Eigen을 사용하면 Matrix3Xd (3 행, n 열)가 있습니다. 내가대각선 행렬의 고유 사용
가 명확하게 모든 컬럼의 제곱 규범을 좀하고 싶습니다, 내가 원하는 각 열의 제곱 규범
squaredNorms =
5 10 5 17
을 좀하고 싶습니다 내가
Matrix3Xd a =
1 3 2 1
2 1 1 4
이 있다고 할 수 있습니다 직접 계산을 수행하는 for 루프를 거치지 않고 행렬 계산을 활용할 수 있습니다.
은 내가 생각의 것은squaredNorms = (A.transpose() * A).diagonal()
이 작동했다,하지만 난 성능 문제를 두려워 : 난 단지 대각선을 필요로 할 때 A.transpose() * A
이, (잠재적으로 만 요소)를 NXN 행렬을 할 것이다.
Eigen은 내가 필요한 계수만을 계산할만큼 충분히 똑똑합니까? 각 열에서 squareNorm 계산을 수행하는 가장 효율적인 방법은 무엇입니까?
[요소 별 곱셈] (https://eigen.tuxfamily.org/dox/group__TutorialArrayClass.html#title4) (['.array()'] 사용 (https://eigen.tuxfamily.org) /dox/group__TutorialArrayClass.html#title6)) 부분 축소 ['.colwise()'] (https://eigen.tuxfamily.org/dox/group__TutorialReductionsVisitorsBroadcasting.html#title5) ['.sum()'] (https://eigen.tuxfamily.org/dox/group__TutorialReductionsVisitorsBroadcasting.html)? – rhashimoto