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

参考