Octave有沒有計算和存儲矩陣乘積的對角線的方法?如何僅計算Octave中矩陣乘積的對角線?
基本上像做:vector = diag(A*B);
我不關心任何的A*B
除對角線上的值。矩陣大小大約爲80k x 12
和12 x 80k
,所以即使我不在乎速度/額外的內存,它也不適合RAM。
奇怪的是,由於Octave是一個龐大的數據集和對角線的包非常重要,所以它應該是可能的。
Octave有沒有計算和存儲矩陣乘積的對角線的方法?如何僅計算Octave中矩陣乘積的對角線?
基本上像做:vector = diag(A*B);
我不關心任何的A*B
除對角線上的值。矩陣大小大約爲80k x 12
和12 x 80k
,所以即使我不在乎速度/額外的內存,它也不適合RAM。
奇怪的是,由於Octave是一個龐大的數據集和對角線的包非常重要,所以它應該是可能的。
對角線中的第一個元素是A的第一行和B的第一列的標量乘積。對角線中的第二個元素是A的第二行和B的第二列的標量乘積。
換句話說:
vector = sum(A.*B',2);
這是你如何能做到這一點在MATLAB(可能是類似於八度語法):
vector = sum(A.*B',2);
這隻會計算操作A*B
的結果對角線作爲列向量vector
。
我看到你很好地利用了5分鐘的寬限期進行編輯。 ;) – gnovice 2010-02-20 04:53:31
我很高興寬限期存在。我似乎只在我提交時看到我的重大錯誤。 :) – Jonas 2010-02-20 12:46:45