0

我想知道是否有人知道是否可以让 MATLAB 为您键入一个字符串,就像用户在键盘上键入它一样。我相信它可以使用 shell 脚本或 applescript 来完成,但我想知道 Matlab 是否有本机实现。

我试过四处寻找它,但没有任何运气。这不是超级必要的,但我只是超级懒惰,想写一个脚本,在 MATLAB 计算完之后自动将信息输入到应用程序中。

如果您知道另一种简单的方法,也请告诉我。非常感谢!

编辑: 添加一些我用来响应下面答案的代码,使用Java机器人类

function robotType(text)
    import java.awt.Robot; 
    import java.awt.event.*; 
    SimKey=Robot;
    for i = 1:length(text)
        if strcmp(text(i),upper(text(i))) == 0 || all(ismember(text(i),'0123456789')) == 1
            eval(['SimKey.keyPress(KeyEvent.VK_',upper(text(i)),')'])
            eval(['SimKey.keyRelease(KeyEvent.VK_',upper(text(i)),')'])
        else
            SimKey.keyPress(KeyEvent.VK_SHIFT);
            eval(['SimKey.keyPress(KeyEvent.VK_',upper(text(i)),')'])
            eval(['SimKey.keyRelease(KeyEvent.VK_',upper(text(i)),')'])
            SimKey.keyRelease(KeyEvent.VK_SHIFT);
        end
    end
end

警告,代码可能不是最好的,但它是在 5 分钟内编写的。

4

1 回答 1

0

我最终写了一个applescript来做我需要Matlab做的所有事情。不幸的是,这对 Windows 人没有帮助,但我和其他使用该脚本的人都是 mac 用户,所以它对我们有用。

但是,我已经编辑了上面的问题,以包含我最初在 Matlab 中用于自动输入内容的代码。只需运行命令 as robotType('SomeString'),它将键入该字符串。

我不相信它会很好地处理空格或随机字符,或者根本不会,但它对于 abc123 来说已经足够了。抱歉,对此没有最终解决方案。

于 2012-10-22T13:44:33.997 回答