無限ループをあるキー​のタイプ等によって停​止させるには、どのよ​うにすればいいですか​?

16 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2010 年 8 月 11 日
無限ループをあるキーのタイプ等によって停止させる方法を教えてください。

採用された回答

MathWorks Support Team
MathWorks Support Team 2010 年 8 月 11 日
MATLAB では、プログラム内ひと続きのコマンドを繰り返し実行している場合、"Ctrl+C"のキーによって途中で実行を中断させることができない場合があります。このような場合、Figureの 'currentcharacter' プロパティを活用すると、処理を中断させることができます。
以下に例をご紹介します。
下記プログラム example を作成し実行すると、'q' キーをタイプするまで繰り返し、rに1が加算されていきます。
【Figureを使用して無限ループを中断させる例】example.m
function example
r=0;
% Figure画面は表示する必要がないので、'position'に非常に小さな
% 範囲を指定し、メニューバーも非表示に設定します。
% hfはFigureのハンドル(管理番号)です。
hf=figure('position',[0 0 eps eps],'menubar','none');
% 無限ループを実行
while 1
r=r+1;
% 最近の入力文字が q であるかを比較
if strcmp(get(hf,'currentcharacter'),'q')
close(hf)
break
end
% 繰り返し毎にその時点のFigureを認識
figure(hf)
drawnow
end

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeループと条件付きステートメント についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!