두 개의 행과 열인 Eigen::ArrayX3d
개체가 있습니다. 이를 구체적으로 표현하기 위해 첫 번째 배열은 N 개의 입자로 이루어진 3 차원 속도로 구성됩니다. 다른 하나는 각 입자의 위치에서 자기장 벡터로 구성됩니다. 로렌츠 힘을 계산하려고합니다. v x B
- 이것은 행 쌍을 가져 와서 교차 제품을 계산해야한다는 것을 의미합니다. 파이썬에서는 단순히 numpy.cross(v, B)
을 수행하는 것을 의미합니다.배열 사이의 고유 행렬 교차 곱
나는 Eigen
에서 이것을 수행하는 방법을 알아 내려고 노력하고 있습니다. 그것은 cross
이 Matrix
과 Vector
에 대해서만 정의되어있는 것처럼 보이지만 내 데이터를 Matrix
으로 유지하는 것은 실제로 의미가 없습니다. (물론 제안은 열려 있지만).
이 작업을 수행하는 합리적인 방법이 있습니까? 나는 어떤 포인터에 대해서도 매우 감사 할 것입니다.
이 설정은 좋은 예 ::이다
ArrayX3d a(4,3);
ArrayX3d b(4,3);
a <<1,0,0,
0,1,0,
0,0,1,
1,0,0;
b <<0,1,0,
0,0,1,
1,0,0,
0,1,0;
단지 각 행의 오른쪽에 한 장소에서 1 년대를 이동해야 X B 작업의 성공적인 응용 프로그램입니다.
'배열'은'.matrix()'를 사용하여 행렬이나 벡터로 볼 수 있습니다. 이렇게하면 교차 제품 기능에 액세스 할 수 있습니다. – ggael
물론, 'v.matrix(). cross (B.matrix())'를 수행 할 수 없기 때문에 그다지 도움이되지 않습니다. 나는 이것을 "전체 배열"사이에서 행하려고하지는 않지만, 행 방향 (row-wise)이다. '.rowwise()'를 사용하여 엉망으로 만들려고했으나 제대로 작동하지 않았습니다. – Perfi