Re: [問題]新手請教while loop
不好意思~我嘗試之後發現一直無法執行將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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):