Re: [問題]新手請教while loop

看板MATLAB作者 (三尺秋水塵不染)時間12年前 (2012/05/21 00:33), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
不好意思~我嘗試之後發現一直無法執行將R存成R0這一步 不知道是哪裡有錯誤,可否請版上高手再指點一下呢? 非常感謝! 以下是我的程式碼~ while R0>=50 <這邊是計算R的值,R0也是用同樣的方法得到> Fkb=fft2(b); Fkb2=abs(Fkb); Fkb3=Fkb2.^2; R1=sum(sum(Fkobs3))*sum(sum(Fkb3)); %Calculate discrepancy R R2=sum(sum(Fkobs2.*Fkb2))^2; R3=sum(sum(Fkb3)); R=(R1-R2)/R3 %若R比上一迴圈的R小時,將R存成R0,此外再亂數選矩陣另一元素改值。 if R<=R0 c1=ceil(numel(b)*rand) switch b(c1) case 0 b(c1)=1 case 1 b(c1)=0 end else R0=R %問題:若加上if敘述,則無法成功執行R0=R,但若執行R0=0卻可以 switch b(c) case 0 b(c)=1 case 1 b(c)=0 end end end ※ 引述《chinared (三尺秋水塵不染)》之銘言: : 各位高手好~小弟是matlab新手,初次來此請教: : 我現在要處理的問題是這樣: : 我寫了一個while loop : while R>=100 : {中間是根據一個matrix計算R的過程} : end : 整個過程是將matrix元素逐次更動 : 因為我想要讓R在跑loop中越來越小 : 所以需要將每次算完的R值和前一次比較 : 如果R值較小的話就固定此元素,再更改下一個元素 : 最後達到理想的R值 : 目前主要卡關的問題是: : 如何取出每次loop跑出的R值,再將他和前一次比較呢? : 不知道這樣描述夠不夠清楚 : 有需要的話我再把程式碼po 上來 : 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 119.14.77.32
文章代碼(AID): #1FkHpphe (MATLAB)
文章代碼(AID): #1FkHpphe (MATLAB)