[運算] inv 多維運算已回收

看板MATLAB作者 (我是妳的)時間13年前 (2011/04/25 09:53), 編輯推噓1(103)
留言4則, 1人參與, 最新討論串1/1
想請教關於inv多維運算的問題 如果我現在想對某個多維矩陣的其中每個二維矩陣做inv的運算 目前我只能這樣寫: % 欲求出 z = inv(x)*y; clear all x = randn(2,2,10); y = randn(2,2,10); z = zeros(2,2,10); for n = 1:10 z(:,:,n) = x(:,:,n)\y(:,:,n); end %% 因為matlab的inv並不能同時做多維運算 可是如果當n很大的時候會造成執行速度過慢 想請問這種情況下有沒有更好更快速的寫法呢? 謝謝大家! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.236.44

04/25 11:11, , 1F
這有可能是矩陣維度index換算拖到了時間,建議先抓出來
04/25 11:11, 1F

04/25 11:12, , 2F
成獨立變數,像是先xx=x(:,:,n); yy=y(:,:,n);
04/25 11:12, 2F

04/25 11:12, , 3F
然後再zz=xx\yy;,最後z(:,:,n)=zz;
04/25 11:12, 3F

04/25 11:15, , 4F
維度可能還要用permute處理一下就是
04/25 11:15, 4F
文章代碼(AID): #1DjDGm84 (MATLAB)