2016-07-28 4 views
0

test_1、test_2などのテストを実行するいくつかのOctaveスクリプトファイルがあります。すべてのテストを実行するスクリプトファイルを用意したいと思います。ファイルを機能ファイルに変換します。私はこの上でいくつかのバリエーションを試してみた:Octaveの他のスクリプトファイルからスクリプトファイルを実行する

#!/path/to/octave -q 
addpath('/path/to/directory/containing/all/scripts/'); 

source(test_1.m); 

source(test_2.m); 

が、私はいつも「エラー:スクリプト/path/to/directory/containing/all/scripts/test_1.mに無効なコール」を得ます。

は(私は、source_fileに()を試してみた)(実行し、ちょうどライン上だけではファイル名を持つ。)

オクターブ内のスクリプトファイルからスクリプトファイルを実行する方法はありますか?

答えて

0

ではなく

source test_1.m 

または

source('test_1.m') 

を試してみてください。あなたの構文はtest_1意味

は、構造体の変数であり、あなたがフィールドにアクセスしようとしているrunコマンド(実際には、runは単純にボンネットの下にsourceを呼び出す)と同じm

と呼ばれています。

パス上にある場合は、スクリプトを直接呼び出すこともできます。あなただけのすなわち

test_1 
test_2 
+0

あなたが取得しているエラーの意味を理解するには、.m拡張子が含まれていないことを確認する必要があります:OctaveはOK、ファイル 『testo.m』の中にあります」あなたを語っています'testo'というスクリプト/関数が使えるということですが、どうしてあなたが' .m 'というメンバにアクセスするように言っているのか分かりません。スクリプトや関数を呼び出す方法はありません彼らにはメンバーがいなくても! –

+0

ところで。あなたのコードがmatlabと互換性があるようにするなら、これはオクターブ固有なので、 'source'アプローチは避けてください。 'run'を実行し、スクリプトを直接呼び出す(パス上にある場合)とどちらもうまくいきます。 –

+0

@EvanGunterは[http://uk.mathworks.com/help/matlab/matlab_prog/command-vs-function-syntax.html](http://k.mathworks.com/help/matlab/)も見ています。 matlab_prog/command-vs-function-syntax.html) –

関連する問題