Как сохранить итерацию нет.при нажатии клавиши в Matlab - PullRequest
0 голосов
/ 12 октября 2018
for i=1:100
      fid=loadfigure(fnames(i).name)
      pause(5)
end

Добавлена ​​функция паузы для проверки фигуры.Как сохранить номер итерации (фактически номер файла) при нажатии клавиши.

1 Ответ

0 голосов
/ 14 октября 2018

Используйте timer вместо pause с Java Robot.Используйте input для нажатия клавиш в командном окне.
input возвращает пустую матрицу, если нажата Enter до нажатия чего-либо еще.Приведенный ниже код ожидает ввода пользователя в течение 5 секунд, и если пользователь ничего не вводит, робот Java нажмет Enter , и код перейдет к следующей итерации.Если функция input возвращает что-то, то она сохраняет номер итерации, прежде чем перейти к следующей итерации.

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

PS: Приведенный выше код сохраняет номер итерации при нажатии буквенно-цифровых и / или специальных символов .

...