2

こんにちはmcc、Matlab 関数をスタンドアロンの .exe に変換していました。Windows コマンド プロンプトで .exe ファイルを実行すると、次のエラーが返されます。

  1. 入力引数が多すぎます // あるはずの 2 つの入力を与えると
  2. 最初の引数は、入力変数と同じ数の列を、入力値の独立したセットと同じ数の行を持つ必要があります // 1 つの入力を与える場合。

コマンドを使用してスタンドアロンをビルドしました: "mcc -mv myfile.m -a datfile.fis" ----------- ビルド プロセスは問題ありません。しかし、Windowsプロンプトでこのコマンド「 myfile.exe 2.0 20.2 」を実行すると、上記のエラーが発生します。私のプログラムは 2 つの入力を取り、1 つの出力を返します。Matlab チュートリアルの magicsquare.m を実行して、同じコンピューターで magicsquare.exe を変換しましたが、正常に動作しました。変換前に、プログラムは matlab で正常に実行されることに注意してください。MATLAB で次のような入力が与えられます。

myfile ([2.0 20.2])

4

1 に答える 1

2

Windows/DOS コマンド ラインから実行可能ファイルを実行すると、MATLAB 内で関数を として呼び出したかのように、引数が文字列として実行可能ファイルに渡されますmyfile "2.0" "20.2"

これらの各入力は文字配列 (たとえば、"2"、"."、"0" の ASCII 値を含む) であるため、入力が多すぎるため、関数でエラーが発生する可能性があります。

str2numまたはを使用して入力を数値に変換するように関数を書き直してみてくださいstr2double。または、入力をファイルに保存し、ファイル名を入力として受け入れるように関数を設計します。

MATLAB で実行している場合と配布されている場合に異なる動作をさせたい場合isdeployedは、if節で組み込み関数を使用して動作を切り替えます。

于 2013-01-21T09:46:33.517 に答える