[問題] 大矩陣相乘取對角線元素已回收

看板MATLAB作者 (ananabla)時間16年前 (2010/04/23 00:06), 編輯推噓2(206)
留言8則, 5人參與, 最新討論串1/1
請問一下 兩矩陣A,B相乘 C=A*B 由於A,B矩陣size相當大,乘法很耗時間 而且我只需要C的對角線元素,其他的元素不需要 有沒有方法加快這個乘法過程並且直接取得對角線元素, 省下乘法過程中計算非對角線元素的時間? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.102.167

04/23 00:29, , 1F
C(i,i)=A(i,:)*B(:,i) 套個for試試看
04/23 00:29, 1F

04/23 00:31, , 2F
如果A,B都很大跑for 應該會變慢吧?
04/23 00:31, 2F

04/23 00:35, , 3F
我也是用for xxx C(i,:)=A(i,:)*B(:,i)或大矩陣diag(C)
04/23 00:35, 3F

04/23 00:36, , 4F
感覺for會是比較快 原po自己測測看吧
04/23 00:36, 4F

04/23 00:37, , 5F
sum(A.*B,2) 試試看 如果size(A,1)~=size(B,2)要前處理
04/23 00:37, 5F

04/23 01:52, , 6F
sum(A.*B',2)
04/23 01:52, 6F

04/23 02:19, , 7F
感謝sunev大大幫我修正~~ 剛剛打太快了 <(_ _)>
04/23 02:19, 7F

04/23 16:30, , 8F
用for loop會變慢 sum(A.*B')確實比較快! 感謝各位建議
04/23 16:30, 8F
文章代碼(AID): #1Bq7GLeb (MATLAB)