Main Content

外部コマンド,スクリプト,プログラムの実行

関数system!オペレーターを使用して、MATLAB®コマンド ラインからオペレーティング システムのコマンドを実行できます。

シェル エスケープ関数

感嘆符文字 (!) は "シェル エスケープ" です!文字は、その後に続く入力行がオペレーティング システムへのコマンドであることを指定します。コマンドへの入力として渡すことができる引数リストの最大長は、オペレーティング システムにより決定されます。!を使用して、MATLAB を終了せずにユーティリティまたはその他の実行可能プログラムを呼び出します。

たとえば、次のコードでは、UNIX®プラットフォーム上のyearlystats.mというファイルに対し vi エディターが開かれます。

!vi yearlystats.m

そして、外部プログラムが終了、またはユーザーがこのプログラムを終了すると制御は MATLAB に戻ります。アプリケーションをバックグラウンド モードで実行するか、出力を別のウィンドウで表示するには、&を行の最後に追加します。

たとえば、次のステートメントはMicrosoft®Excel®プログラムを開き、MATLAB コマンドの実行を続行できるように制御をコマンド プロンプトに返します。

!excel.exe &

Windows®プラットフォーム上では、次のコマンドは結果を DOS ウィンドウで表示します。

!dir &

メモ

階乗の式で感嘆符を使用するには、関数factorialを呼び出します。

結果およびステータスを返す

結果およびステータスを返すプログラムを実行するには、関数systemを使用します。

環境変数の指定

特定の環境変数を使ってオペレーティング システム コマンドを実行するには、すべてのコマンドをシステム呼び出し内でオペレーティング システムに組み込んでください。これは、MATLAB 関数!(感嘆符)、systemdosおよびunixに適用されます。コマンドを区切るには、次のようにします。

  • Windows プラットフォームでは、&(アンパサンド) を使用します。

  • UNIX プラットフォームでは、;(セミコロン) を使用します。

あるいは、MATLAB を開始する前に環境変数を設定します。

システム パス上にないUNIXプログラムの実行

UNIX プログラムを格納しているフォルダーが、UNIX システム パス上になくても、そのパスが MATLAB から見えていれば、MATLAB からそのファイルを実行できます。MATLAB から参照できるパスを表示するには、MATLAB コマンド プロンプトで次のように入力します。

getenv('PATH')

以下のトピックで説明されているように、現在の MATLAB セッションまたは後続の MATLAB セッションのシステム パスを変更できます。

現在のMATLABセッション

現在の MATLAB セッションのシステム パスを変更できます。MATLAB を再起動すると、フォルダーはシステム パス上には存在しなくなります。

システム パスを変更するには、次のいずれかを行います。

  • MATLAB の現在のフォルダーを、実行したいプログラムのフォルダーに変更します。

  • コマンド プロンプトで以下のコマンドを入力します。

    path1 = getenv('PATH') path1 = [path1 ':/usr/local/bin'] setenv('PATH', path1) !echo $PATH

現在のシェル セッション内にあるすべてのMATLABセッション

シェル セッション内のシステム パスを変更できます。現在のシェル セッション内で MATLAB を再起動しても、フォルダーはシステム パス上に残ったままです。ただし、シェル セッションを再起動してから MATLAB を再起動すると、フォルダーはパス上には存在しなくなります。

シェルからシステム パスにフォルダーを追加するには、次の手順を実行します。

  1. MATLAB を終了します。

  2. 使用しているシェルに応じて、システム コマンド プロンプトで次のいずれかを入力します。ただし、myfolderは実行するプログラムを格納しているフォルダーです。

    • bashまたは関連シェルの場合:

      export PATH="$PATH:myfolder"
    • tcshまたは関連シェルの場合:

      setenv PATH "${PATH}:myfolder"
  3. MATLAB を起動します。

  4. MATLAB コマンド ウィンドウで以下のように入力します。

    !echo $PATH

すべてのMATLABセッション

シェル セッションおよび MATLAB セッション全体でシステム パスを変更するには、MATLAB 起動ファイルでの起動オプションの指定で説明されているように、次のコマンドを MATLAB スタートアップ ファイルに追加します。

path1 = getenv('PATH') path1 = [path1 ':/usr/local/bin'] setenv('PATH', path1) !echo $PATH

macOSでのAppleScriptの実行

macOSプラットフォームでは、AppleAppleScriptプログラムを MATLAB から直接は実行できません。AppleScriptコマンドを実行するには、MATLAB の関数unixまたは関数!(感嘆符) を使用してApplemacOSの関数osascriptを呼び出します。

参考