Re: [問題] 多維矩陣可用點乘嗎 .*已回收

看板MATLAB作者 (傷心人)時間15年前 (2010/06/30 23:58), 編輯推噓4(404)
留言8則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《diva (傷心人)》之銘言: : 標題: [問題] 多維矩陣可用點乘嗎 .* : 時間: Tue Jun 29 18:42:51 2010 : : A=4*4*N : B=4*4*N : : for i=1:N : : C(:,:,i)=A(:,:,i)*B(:,:,i) : : end : : 因為N很大 : 電腦要跑很久 : : : 有沒有類似點乘的指令可以簡化 : : 推 KevinT:多維可以.* 但是你的迴圈是矩陣乘法 用.* ? 06/30 02:00 KevinT你誤會了 這樣說好了 A=[a1 a2 a3 .... aN] B=[b1 b2 b3 .... bN] for i=1:N C(i)=A(i)*B(i) end 當 a1~aN 和 b1~bN 都各是一個元素時 迴圈可以簡化成 C=A.*B 但是 當 a1~aN 和 b1~bN 都各是一個4*4的矩陣時 我還是希望C(i)的每一項都是ai*bi而不是變成ai.*bi 如果用.* 就不會得到和迴圈相同的效果 會變成ai.*bi -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.115.99.178 ※ 編輯: diva 來自: 59.115.99.178 (06/30 23:59) ※ 編輯: diva 來自: 59.115.99.178 (06/30 23:59)

07/01 06:46, , 1F
你也誤會KevinT 了, 你原文裡的確是矩陣乘法, 而不是 .*
07/01 06:46, 1F

07/01 06:51, , 2F
另外你有沒有先幫 C定義一下,ex: C=zeros(4,4,N)
07/01 06:51, 2F

07/01 06:57, , 3F
我了解了, 所以你要的是矩陣乘積
07/01 06:57, 3F

07/01 18:09, , 4F
沒記錯的話,迴圈開始前 先定義好 C的矩陣大小可加快執行速度
07/01 18:09, 4F

07/01 18:11, , 5F
這應該是記憶體事先配置的關係吧~我猜
07/01 18:11, 5F

07/01 19:10, , 6F
a = [a (new value)]; 這樣寫的確會跑到天荒地老
07/01 19:10, 6F

07/01 19:11, , 7F
不過我用學校電腦常常開兩台
07/01 19:11, 7F

07/01 19:12, , 8F
這樣寫不小心就會玩小遊戲玩太久 @@
07/01 19:12, 8F
文章代碼(AID): #1CAscoPA (MATLAB)
文章代碼(AID): #1CAscoPA (MATLAB)