0

ユーザーがキーボードで入力したかのように、MATLAB に文字列を入力させることができるかどうか、誰かが知っているかどうか疑問に思っていました。シェルスクリプトまたはアップルスクリプトを使用して実行できると思いますが、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

最終的に、Matlab で必要なすべてのことを行うための AppleScript を作成しました。残念ながら、これは Windows ユーザーには役に立ちませんが、スクリプトを使用している私と他のユーザーは Mac ユーザーなので、うまくいきます。

ただし、上記の質問を編集して、Matlab で最初に自動入力するために使用したコードを含めました。command asrobotType('SomeString')を実行するだけで、その文字列が入力されます。

スペースやランダムな文字がうまく処理されるとは思えませんが、abc123 には十分です。これに関する最終的な解決策がなくて申し訳ありません。

于 2012-10-22T13:44:33.997 に答える