無限ループをあるキーのタイプ等によって停止させるには、どのようにすればいいですか?
16 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
無限ループをあるキーのタイプ等によって停止させる方法を教えてください。
Respuesta aceptada
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
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre ループと条件付きステートメント en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!