msgbox 関数でモーダルモード(modal) に指定しても、"OK" ボタンをクリックする​前にプログラム中の次​の処理が進んでしまう​のはなぜですか?

12 次查看(过去 30 天)
MATLAB プログラム中に以下のような処理を記述しています。
plot(1:1)
msgbox('コンター図の表示', 'modal')
contourf(peaks)
 
msgbox 関数によりメッセージボックスは表示されますが、OK ボタンを選択する前に、次の処理(ここでは contourf 関数)が実行されてしまいます。

采纳的回答

MathWorks Support Team
モーダルは「実行をブロックする」と同じものではありません。モーダル ダイアログ ボックスを使用すると、ユーザーが応答する前に他のウィンドウと対話できなくなりますが、MATLAB 関数の残りのコードの実行は妨げられません。
MSGBOXは情報を含むウィンドウを設置することを目的としており、「OK」ボタンは、人がその情報を見たということを意味します。ただし、ユーザー入力まで、ダイアログ ボックスは MATLAB 関数の実行を中断しません。
OK ボタンを押下するまで、後段の処理を待機させるには、QUESTDLG のような別の種類のダイアログ ボックスを使用するか、以下のように WAITFOR コマンドを MSGBOX と組み合わせて使用します。
例:
waitfor(msgbox('Wait for me.'));
disp('Done waiting.');

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 アプリの作成 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!