Matlab Compiler 特有のルール

コンパイルした関数の引数が文字列ではなく値である場合、値であることを宣言する必要がある。どうもコンパイル時に文字列として解釈されるので、値に変換しないとコンパイル時ではなく、実行時にエラーがでる。うわーC/C++みたい。

function hogehoge(value1, value2)
~~
~~

という関数をコンパイルする際は

function hogehoge(value1, value2)
value1 = str2num(value1);
value2 = str2num(value2);
~~
~~

mcc コマンドでコンパイルした関数のみに適応されるルールらしい。それ以外の内部関数は通常のm-ファイルの処理と同様に扱われる。

以下、参考にしました。
http://www.mathworks.com/matlabcentral/newsreader/view_thread/247796


2013.11.4 追記

いや、コマンドラインから引数とるんだから、よく考えたら自然だよなぁ。。。