Re: [問題] for迴圈的問題已回收

看板MATLAB作者 (小花)時間15年前 (2010/06/27 17:45), 編輯推噓0(007)
留言7則, 3人參與, 最新討論串2/2 (看更多)
function [l,u] = ilup(a,p) [m,n] = size(a); lev(a==0)=Inf; lev(a~=0)=0; for i = 2 : n for k = 1 : i-1 if lev((i-1)*n+k) <= p a(i,k) = a(i,k)/a(k,k); for j = k+1 : n a(i,j) = a(i,j)-a(i,k)*a(k,j); lev((i-1)*n+j) = min([lev((i-1)*n+j) ,lev((i-1)*n+k)+lev((k-1)*n+j)+1]); if lev((i-1)*n+j) > p a(i,j) = 0; end end end end end 這段是我的程式碼,是要做不完全的LU分解,中間用了三個迴圈,i,k,j 我試過不要用那麼多迴圈,但苦思無解,如果用:代表的話又不行 這有辦法改寫成不要三個迴圈的嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.115.183.250

06/27 18:30, , 1F
看起來可以 多用find
06/27 18:30, 1F

06/28 02:25, , 2F
不完全 LU 分解有 ilu, luinc 可以用啊... 幹麼自己寫
06/28 02:25, 2F

06/28 02:27, , 3F
如果非要自己寫不可,多翻翻書上 .* 還有 ./ 的範例吧
06/28 02:27, 3F

06/28 15:01, , 4F
ILU有很多種方法,我要的是ILU(p),這內建沒有,所以得自己
06/28 15:01, 4F

06/28 15:03, , 5F
動手,樓上說的書是哪本呢?我看了幾本matlab的書沒看到相關
06/28 15:03, 5F

06/28 15:03, , 6F
的哩
06/28 15:03, 6F

06/28 16:31, , 7F
.* ./ 在最基本的matlab教學書都有吧 @@
06/28 16:31, 7F
文章代碼(AID): #1C9nt9vB (MATLAB)
文章代碼(AID): #1C9nt9vB (MATLAB)