28

Linux/UNIX で実行されているスタンドアロンの MATLAB 実行可能ファイルにコマンド ライン引数を渡すにはどうすればよいですか?

MATLAB が存在しないマシンで実行できるスタンドアロン ファイルとして MATLAB スクリプトをコンパイルする必要があります。C に似た方法で動作できる必要がargv[]あります。次の操作を行います。

コマンドライン:

myfile argument1.txt argument2.txt

ここで、引数 1 と 2 は入力ファイルと出力ファイルです。

正確な構文は問題ではありませんが、次のように動作するはずargv[]です。これを行うことができる機能は何ですか?


つまり、コンピューターに MATLAB がありますが、それらのコンピューターで MATLAB を使用せずに Unix システムで実行できるスタンドアロンの実行可能ファイルを作成する必要があります (1 つのノードに MATLAB しかないクラスターです)。プログラムを実行しているコンピューターに MATLAB をインストールせずに varargin 関数を作成する方法を見つける必要があります。MATLAB ライブラリを各実行可能ファイルに入れるように MATLAB に指示できれば、それが完全なスタンドアロン パッケージである限り問題ありません。

4

3 に答える 3

25

MATLABのWebサイトには 、単純なアプリケーションをコンパイルする方法と、それを別のコンピューターに展開する方法についての説明が記載された、実例があります。本質的には、MATLABコンパイラランタイムをアプリケーションと一緒にインストールする必要があります。ランタイムのインストーラーは、MATLABコンパイラのインストールにすでに存在している必要があります。

コマンドライン引数をMATLAB実行可能ファイルに渡すには、実行可能ファイルで単一のMATLAB関数を定義します。関数への引数はコマンドラインパラメーターから取得されます(最初のコマンドラインパラメーターは最初の引数など)。

たとえばecho.m、次の内容のファイルを作成します。

function exitcode = echo(a, b)

display(a);
display(b);

exitcode = 0;

次に、このファイルをコンパイルしてで実行するとecho 1 2 3、が出力されますa=1 b=2

引数をコマンドラインから取得すると、文字列として関数に渡されるため、関数を使用して引数を数値に変換する必要があることに注意してくださいstr2num。例えば:

function rc = display_product(a, b)

a = str2num(a);
b = str2num(b);

display(a*b);

rc = 0;
于 2011-06-01T14:01:49.863 に答える
1

MATLAB がなければ、コンピューター上で MATLAB を実際に実行することはできません。無料でインストールできる MCR (MATLAB Component Runtime) をインストールして、MATLAB プログラムを実行できます。「スタンドアロン」実行可能ファイルをビルドするには、MATLAB コンパイラも必要です。

あなたがそれをすべて手に入れたら。MATLAB には、必要な方法でコマンド ライン引数を処理するために必要なすべての機能があります。

于 2010-07-26T14:14:56.710 に答える