代码之家  ›  专栏  ›  技术社区  ›  user9003011

如何在Matlab中保存按键迭代次数

  •  0
  • user9003011  · 技术社区  · 6 年前
    for i=1:100
          fid=loadfigure(fnames(i).name)
          pause(5)
    end
    

    暂停功能被添加到检查图中。如何在按键时保存迭代号(实际上是文件号)。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Sardar Usama    6 年前

    使用 timer 而不是 pause 用Java机器人。使用 input 用于在命令窗口中按键。
    输入 如果返回空矩阵 进入 在按下其他任何东西之前按下。下面的代码等待用户输入5秒,如果用户不输入任何东西,则Java机器人将按下。 进入 然后代码进入下一个迭代。如果 输入 函数返回一些内容,然后在继续下一次迭代之前保存迭代号。

    t = timer('StartDelay', 5, 'TimerFcn', @PressEnterButton);
    ind=1;
    for k=1:100
        fid=loadfigure(fnames(i).name);  %as it is from your code
    
        start(t);   %start the 5sec timer
        if ~isempty(input('Wait for button press','s'));
            iterNum{ind}= k;    ind=ind+1;
        end       
        stop(t);    %stop the timer object
    end
    delete(t);      %delete the timer object
    

    function PressEnterButton(HObj, event)
    %Function to press Enter button
    import java.awt.*;
    import java.awt.event.*;
    r=Robot;
    r.keyPress(KeyEvent.VK_ENTER);
    r.keyRelease(KeyEvent.VK_ENTER);
    end
    

    P.S:当 字母数字和/或特殊字符键 被压住了。