2016-07-26 3 views
1

コマンドラインのMatlab(リモートのubuntu Linuxワークステーション)を使用していて、スクリプトを実行しようとしています。私が走ったときコマンドラインのmatlabスクリプトコールで未定義の変数/クラスエラーが発生する

は:

matlab -nodesktop -nosplash -r "my_script.m" 

をMATLABが開いてくれ

Undefined variable "my_script" or class "my_script.m" 

を示すエラーメッセージを与えるだろう、私は同様の問題を持つユーザーとのstackoverflow上のスレッドを見つけました: Matlab: Running an m-file from command-line

しかし、私は提案された構文を実装しようとしました:

matlab -nodesktop -nosplash -r "run('my_script.m');" 

私は今

Unexpected MATLAB expression. 

Error in run (line 96) 
evalin('caller', [script ';']) 

が、私はめったにMATLABを使用し、さらにめったにワット/ OAのGUIそう、私はオンラインからの情報を使用して構文を修正するために、成功せずにしようとしてきた、構文エラーを取得しますメッセージボード。

+0

ほとんどの場合、my_script.mはMatlabのパスにないため、見つからない可能性があります。スクリプトを実行する前に、あなたのパスに追加してください。 –

+0

オープンmatlabセッションでpwdを使って確認しました。作業ディレクトリはどこにmy_script.mがあるのですか – Max

答えて

4

あなただけ.m拡張子を削除する必要があります。

matlab -nodesktop -nosplash -r "my_script" 

理由はmy_script.mが有効なMATLAB文ではないということです。スクリプト/関数を実行するには、その名前を使用して実行する必要があります(例:my_script)。 Matlabのコマンドウィンドウからmy_script.mmy_scriptの文を実行しようとすると、そのことが分かります。

runコマンドを使用している)2番目のエラーは、スクリプトの実際のエラーのようです。エラーが発生した行番号を表示するはずの一番上の行をコピーして貼り付けるのを忘れたようです。下に表示されているもの、つまりError in run (line 96)evalin('caller', [script ';'])は、スタックトレースの2番目のエントリです。 evalinを使用してスクリプトの評価中にエラーが発生したことを確認します。

+0

私にそれを打つ:)私は言わなければならないが、私は2番目のエラーについて困惑している... –

+0

@Maxまた、これは "matlabセッションを開き、 「スクリプトを実行して終了する」ではありません。あなたのMATLABセッションは開いたままです。スクリプトを実行して終了したい場合は、 '-r" myscript; exit "' –

+0

ありがとうございます。スクリプトが正しく実行されるようになりました。 – Max

関連する問題