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

13 visualizzazioni (ultimi 30 giorni)
MathWorks Support Team
MathWorks Support Team il 11 Ago 2010
無限ループをあるキーのタイプ等によって停止させる方法を教えてください。

Risposta accettata

MathWorks Support Team
MathWorks Support Team il 11 Ago 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

Più risposte (0)

Categorie

Scopri di più su ループと条件付きステートメント in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!