Main Content

スタンドアロン アプリケーションおよび引数

概要

スタンドアロン アプリケーションは、引数の受け渡しを行わずにアプリケーションを実行するように作成できます。

ただし、任意のコンソール ベースのアプリケーションに入力引数を渡す場合と同じ方法で、MATLAB® Compiler™ を使用して作成されたスタンドアロン アプリケーションに引数を渡すこともできます。

以下のコマンド例を使用して、Windows® または Linux® のコマンド プロンプトから異なるデータ型の入力引数で filename という名前のアプリケーションを実行します。

ファイル名、数値または文字、行列および MATLAB 変数を渡す

渡す引数使用する構文メモ
helpfile という名前のファイルfilename helpfile 
数値または文字filename 1 2 3 a b c渡す数値と文字の間にコンマなどの区切りを "使用しないでください"
行列を入力filename "[1 2 3]" "[4 5 6]"空白スペースを表すには、入力引数を二重引用符で囲みます。
MATLAB 変数
for k=1:10
cmd = ['filename ',num2str(k)];
system(cmd);
end
MATLAB 変数を入力としてプログラムに渡すには、まず変数を文字ベクトルに変換しなければなりません。

引数を使用するスタンドアロン アプリケーションの実行

以下のいずれかのコマンドを使用して、引数を使用するスタンドアロン アプリケーションを MATLAB から呼び出します。

  • SYSTEM

  • DOS

  • UNIX

  • !

MATLAB 変数の内容を入力としてプログラムに渡すには、まず変数を文字ベクトルに変換しなければなりません。以下に例を示します。

SYSTEM、DOS または UNIX の使用方法

アプリケーションを文字ベクトル (入力引数を含む) として実行するには、コマンド全体を指定します。たとえば、SYSTEM コマンドを使用して数値と文字 1 2 3 a b c を渡すには、次のようにします。

system('filename 1 2 3 a b c')

! (感嘆符) 演算子の使用

次のように、MATLAB 内から ! (感嘆符) 演算子を使用することもできます。

!filename 1 2 3 a b c

! (感嘆符) 演算子を使用する場合、入力行の残りは SYSTEM コマンドとして解釈されるため、MATLAB 変数は使用できません。

Windows の使用

ダブルクリックによってスタンドアロン アプリケーションを実行する場合、入力引数を指定してスタンドアロン アプリケーションを呼び出すバッチ ファイルを作成することができます。以下に例を示します。

 rem This is main.bat file which calls 
 rem filename.exe with input parameters

 filename "[1 2 3]" "[4 5 6]"
 @echo off
 pause

main.bat のコードに最後の 2 行が追加され、キーが押されるまで、出力を表示しているウィンドウが開いたままになります。

このファイルを保存すると、main.bat アイコンをダブルクリックすることにより、上記で指定した引数を使用してコードを実行することができます。

デプロイ予定の MATLAB ファイルの使用

実行時に引数を使用する MATLAB ファイルを MATLAB Compiler でもデプロイする予定の場合は、次の点に注意してください。

  • システム プロンプトから実行可能ファイルへ渡す入力引数は、文字ベクトル入力として受け取られます。異なる形式のデータ (たとえば double) が必要な場合、まず、文字ベクトル入力を MATLAB コードで必要な形式に変換しなければなりません。たとえば、文字ベクトル入力を数値データに変換するには STR2NUM を使用できます。

  • スタンドアロン アプリケーションからユーザーに値を返すことはできません。コンパイルされたコードから値を返す唯一の方法は画面に表示するか、ファイルに保存するかのどちらかです。

    データを画面に表示するには、以下のいずれかの手順に従います。

    • セミコロンを使用しないことで、戻り値を出力するコマンドを抑制する。

    • DISP コマンドを使用して変数値を表示し、次に、Windows 以外のシステムでリダイレクト (> 演算子) またはパイプ (||) を使用して、出力を他のアプリケーションにリダイレクトする。

MATLAB ファイルを使用した画面へのデータの表示

MATLAB ファイルを使用して入力引数を受け取り、データを画面に表示するには、2 通りの方法があります。

方法 1

function [x,y]=foo(z);

if ischar(z)
z=str2num(z);
else
z=z;
end
x=2*z
y=z^2;
disp(y)

方法 2

function [x,y]=foo(z);

if isdeployed
z=str2num(z);
end
x=2*z
y=z^2;
disp(y)