コンパイルした関数の引数が文字列ではなく値である場合、値であることを宣言する必要がある。どうもコンパイル時に文字列として解釈されるので、値に変換しないとコンパイル時ではなく、実行時にエラーがでる。うわー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 追記
いや、コマンドラインから引数とるんだから、よく考えたら自然だよなぁ。。。