MATLAB:循环和键盘不能同时工作

问题描述 投票:0回答:1

我正在编写一个 MATLAB 程序,(1) 包含主循环,(2) 使用键盘。但是,它们不能同时工作。

  1. 代码
function p
 
fig=figure(1);
set(fig,'KeyPressFcn',@myfun);
 
% plot(1,1)   %2
% drawnow     %2
 
ex=0;
% while ~ex   %1
% % ...       %1
% end         %1
 
  function myfun(~,event)
    disp(event.Key);
  end
 
end

有效:图 1 窗口打开,所有击键都出现在命令窗口中。

  1. 打开标有%1的行,即添加主循环,并开始执行脚本。 图 1 窗口打不开。 使用 Ctrl-C 停止脚本执行,图 1 打开并且按键开始出现在命令窗口中。

  2. 现在打开标有 %2 的行并开始。图 1 窗口打开,但对击键没有明显反应。 使用 Ctrl-C 停止脚本执行,启动和 Ctrl-C 之间发生的所有击键都会转储到命令窗口中。

如何让主循环和按键响应同时工作?

附注对不起我的英语,我不是母语人士。

matlab keyboard
1个回答
0
投票

当 MATLAB 运行代码时(例如在循环中),它不会执行任何其他操作。 UI 事件会排队并在计算(代码执行)停止之前不会被处理。

要定期与 COM 端口交互,请使用

timer

或者,如果您需要进行一些长时间计算并仍然允许用户交互,请定期发出一个简短的

pause
以便可以处理 UI 事件。还有
drawnow
,它应该允许处理 UI 事件,但我过去并没有很成功。

© www.soinside.com 2019 - 2024. All rights reserved.