2010-02-20 2 views
13

Octave에서 매트릭스 제품의 대각선 만 계산하고 저장하는 방법이 있습니까?Octave에서 행렬 곱을 대각선으로 만 계산하는 방법은 무엇입니까?

기본적으로 일을 같이 : 나는 대각선을 제외한 A*B의 값 중 하나에 대해 걱정하지 않는다 vector = diag(A*B);

. 매트릭스 크기는 약 80k x 1212 x 80k입니다. 따라서 속도/추가 메모리에 신경 쓰지 않아도 RAM에 맞지 않습니다.

이상하다. Octave는 거대한 데이터 세트와 대각선을위한 패키지이므로 매우 중요하다.

답변

17

대각선의 첫 번째 요소는 A의 첫 번째 행과 B의 첫 번째 열의 스칼라 곱입니다. 대각선의 두 번째 요소는 A의 두 번째 행과 B의 두 번째 열의 스칼라 곱입니다. 즉

는 :

vector = sum(A.*B',2); 
+1

편집을 위해 5 분의 유예 기간을 잘 활용 한 것을 알았습니다. ;) – gnovice

+0

유예 기간이 존재하기 때문에 기쁩니다. 제출을 클릭하면 내 큰 실수 만 볼 수 있습니다. :) – Jonas

9

이것은 당신이 MATLAB에서 할 (옥타브 구문 아마도 유사) 수있는 방법입니다 :

vector = sum(A.*B',2); 

에만 계산됩니다 연산 A*B의 결과 대각선은 열 벡터 vector입니다.

0

실제로 I 그것이 제 열 B의와의 첫 번째 행의 내적 생각 ... 번째 대각 원소 등 ...

번째 행과 번째 열의 내적이며
+0

예. 나는 잘못 입력했다. – Jonas

관련 문제