如何保存迭代编号。在matlab中按下按键

Posted

技术标签:

【中文标题】如何保存迭代编号。在matlab中按下按键【英文标题】:How to save iteration no. on key press in matlab 【发布时间】:2018-10-12 13:57:49 【问题描述】:
for i=1:100
      fid=loadfigure(fnames(i).name)
      pause(5)
end

增加了暂停功能以检查数字。如何在按键时保存迭代次数(实际上是文件号)。

【问题讨论】:

如果按键是 ctrl+c 那么i 将具有您要查找的值。 问题是如何将其存储为变量,在迭代结束时可以将其视为一组值。 【参考方案1】:

在 Java Robot 中使用 timer 而不是 pause。使用input 在命令窗口中进行按键操作。input 如果在按其他任何内容之前按了 Enter,则返回一个空矩阵。下面的代码等待用户输入 5 秒,如果用户没有输入任何内容,Java Robot 将按 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'));
        iterNumind= 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:当字母数字和/或特殊字符键被按下时,上面的代码会保存迭代次数。

【讨论】:

ind 不存储值。出了点问题。 请解释一下。不工作不是问题陈述。

以上是关于如何保存迭代编号。在matlab中按下按键的主要内容,如果未能解决你的问题,请参考以下文章

不知道如何在 C# 中自动按键

如何在Angular中按顺序处理2个点击事件

如何在matlab中保存通过for循环生成的数据?

如何在matlab中保存不同的立方体变量?

winform 按键触发button事件

matlAB如何保存变量