if ステートメントの条件が false の場合に自分自身を呼び出すスクリプトがあります。ユーザーが定義する反復の最大回数は、最大 20 回です。
問題は、アルゴリズム自体の内部で変化する変数があり、if ステートメントの条件が false の場合、プロセス全体が最初からやり直すことです。問題は、再起動時に行われる新しい計算は、最初の値ではなく、最後に計算された値に依存する必要があるということです。この時点で、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