Re: [問題] 簡化迴圈/判斷程式已回收

看板MATLAB作者 (Veritas)時間16年前 (2009/06/21 01:28), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《aada (aada)》之銘言: : 大家好, 小弟目前要做一個影像處理的程式, : 看到那麼多判斷式想要把程式精簡化, : 不曉得版上的高手是否可以給點建議呢? : for k=1:1:Nx : for l=1:1:Ny : if ( a(k,l)-b(k,l) > 0 ) && ( c(k,l)-d(k,l) > 0 ); : ee(k,l)=ee(k,l); : elseif ( a(k,l)-b(k,l) > 0 ) && ( c(k,l)-d(k,l) < 0 ); : ee(k,l)=1+ee(k,l); : elseif ( a(k,l)-b(k,l) < 0 ) && ( c(k,l)-d(k,l) < 0 ); : ee(k,l)=2+ee(k,l); : elseif ( a(k,l)-b(k,l) < 0 ) && ( c(k,l)-d(k,l) > 0 ); : ee(k,l)=4+ee(k,l); : elseif ( a(k,l)-b(k,l) == 0 ) && ( c(k,l)-d(k,l) >= 0 ); : ee(k,l)=0; : elseif ( a(k,l)-b(k,l) == 0 ) && ( c(k,l)-d(k,l) < 0 ); : ee(k,l)=2; : elseif ( a(k,l)-b(k,l) > 0 ) && ( c(k,l)-d(k,l) == 0 ); : ee(k,l)=1; : elseif ( a(k,l)-b(k,l) < 0 ) && ( c(k,l)-d(k,l) == 0 ); : ee(k,l)=3; : end : end : end : 大家來想想看吧!! agb=a>b;aeb=a==b;alb=a<b; cgd=c>d;ced=c==d;cld=c<d; ee(agb&cld)=ee(agb&cld)+1; ee(alb&cld)=ee(alb&cld)+2; ee(alb&cgd)=ee(alb&cgd)+4; ee(aeb&(cld|ced))=0; ee(aeb&cld)=2; ee(agb&ced)=1; ee(alb&ced)=3; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.210.172
文章代碼(AID): #1AFHnGY6 (MATLAB)
文章代碼(AID): #1AFHnGY6 (MATLAB)