MATLAB には、割り込み関数が終了した後に中断された関数を止める機能は備えておりません。
しかし、添付 interrupt_stop.m のようにループ内に上記のようなロジックを記述することで可能になります。特に PushButton1 のコールバック構造をご覧ください。プログラムを実行するにはMATLAB コマンドウィンドウで以下を入力してください。
>> interrupt_stop
test_interrupts.m と同様に、Run Loop を押してください。Loop 1 が終了する前に Loop 2 を開始させた場合、Loop 2 が終了しても Loop 1 には戻りません。
FOR ループの中でコールバックが一度割り込みされると、割り込みをした関数が実行され、FORループに戻ります。結果的に、TRUE 条件で IF 文に戻るため RETURN コマンドの実行につながります。そのため、元のコールバックの実行が停止されます。
この例では、SETAPPDATA と GETAPPDATA が使用されています。これらの関数は例の中での "Callbackrun" にあたるようなユーザ定義のプロパティの作成を許可しています。