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

16 views (last 30 days)
MathWorks Support Team
MathWorks Support Team on 11 Aug 2010
無限ループをあるキーのタイプ等によって停止させる方法を教えてください。

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 11 Aug 2010
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

More Answers (0)

Categories

Find more on ループと条件付きステートメント in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!