我有一个while循环,无限,我想在按键盘键时停止它。
伪代码:
While(1)
do stuff;
listening for key;
if key is pressed
break;
end
end
函数waitforbuttonpress
让我按下键,所以没有运气。
我在网上找不到任何选项。
答案 0 :(得分:3)
好的,我知道这有点晚了但是,经过长时间的追捕,我找到了一个解决方案。当一个数字窗口被聚焦时,你可以这样做:
set(gcf,'currentchar',' ') % set a dummy character
while get(gcf,'currentchar')==' ' % which gets changed when key is pressed
do_stuff()
end
当焦点在图中时按下某个键,它会设置属性'currentchar'。在R2010b中测试过。
答案 1 :(得分:3)
dialogBox = uicontrol('Style', 'PushButton', 'String', 'Break','Callback', 'delete(gcbf)');
while (ishandle(dialogBox))
statements....
end
答案 2 :(得分:1)
我想如果你不想诉诸multithreading(一个线程在while循环中进行计算,另一个等待输入并设置全局sentinel值来打破while循环)你可以尝试在捕获键盘中断(ctrl-c)时实现打破循环。这应该是可能的,尽管有点hackish way。