我有一個自稱在當if語句的條件爲假的腳本。用戶定義的最大迭代次數可以達到20次。替代「設置值」
的問題是,存在該算法本身的內部變化的變量(一個或多個),如果if語句的條件爲假,整個過程將重新開始。事情是,當它再次啓動時要進行的新計算應取決於最後計算的值,而不是最初計算的值。在這一點上,我正在通過使用set-get函數來實現我想要的。設置值標準的問題在於它在每次運行中更新GUI,這非常耗時。任何想法都非常感謝。以下是可用的代碼,但冗長;請注意,這是對實際腳本的非常簡短的總結,但它符合這個目的。
FunctionOne
InitialPrice=str2double(get(handles.StockP,'String'));
TargetPrice=105;
T=str2double(get(handles.Time,'String')); %This value is maximum 20
StockPrice= InitialPrice*(1+randn) %just for simplicity
If Time > 0
If StockPrice>TargetPrice
update the GUI %end
else
set(handles.StockP,(StockPrice))
set(handles.Time,'String',(T-1))
FunctionOne
end
end
end
非常感謝Karthik的回答。我很快就會應用這些代碼(在幾個小時內或者明天最大的時刻,因爲有緊急事情發生),並在這裏發佈更新。請注意,真實的代碼長度超過100行,並且會添加更多的輸入內容,以及更多嵌套的if語句。我相信,您的解決方案應該努力 - - 再次感謝所有最好// –
大家好,非常感謝 - 其實稍加編輯後,它的工作原理perfectly--它仍然會消耗一些時間,但似乎是在這個過程中,而不是在該方法遵循。 再次感謝所有與最佳 –