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

16 visualizaciones (últimos 30 días)
MathWorks Support Team
MathWorks Support Team el 11 de Ag. de 2010
無限ループをあるキーのタイプ等によって停止させる方法を教えてください。

Respuesta aceptada

MathWorks Support Team
MathWorks Support Team el 11 de Ag. de 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

Más respuestas (0)

Categorías

Más información sobre ループと条件付きステートメント en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!