2016-07-28 42 views
0

Ich habe mehrere Octave-Skriptdateien, die Tests ausführen, genannt test_1, test_2 usw. Ich möchte eine Skriptdatei haben, die alle Tests ausführt, ohne dass ich alle test_n umschalten muss Dateien zu Funktionsdateien. Ich habe auf diesem mehr Varianten ausprobiert:Skriptdatei aus einer anderen Skriptdatei in Octave starten

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

source(test_1.m); 

source(test_2.m); 

aber ich bekomme immer „Fehler: ungültigen Anruf Skript /path/to/directory/containing/all/scripts/test_1.m“.

(Ich habe versucht, source_file(), run(), und nur die Dateinamen auf der Linie allein.) Erhalten

Gibt es eine Möglichkeit Skriptdateien aus einer Skriptdatei in Octave zu laufen?

Antwort

0

Versuchen

source test_1.m 

oder

source('test_1.m') 

statt.

Ihre Syntax impliziert test_1 ist eine Struktur variabel und Sie versuchen, ein Feld zuzugreifen genannt m

Gleiche mit dem run Befehl (in der Tat, run ruft einfach source unter der Haube).

Sie können das Skript auch direkt aufrufen, wenn es sich auf dem Pfad befindet. Sie müssen nur sicherstellen, dass Sie beinhalten nicht die .m Erweiterung, dh

test_1 
test_2 
+0

Um Sinn des Fehlers machen Sie bekommen: Octave Sie sagt „ok, es gibt eine Datei‚testo.m‘in der Pfad, was bedeutet, dass es ein Skript/eine Funktion namens 'testo' gibt, die ich benutzen kann. Aber ich habe keine Ahnung, warum du mir befehlst, auf ein Mitglied' .m' zuzugreifen. Das ist kein Weg, ein Skript oder eine Funktion aufzurufen ! Sie haben nicht einmal Mitglieder! " –

+0

Übrigens. Wenn Sie beabsichtigen, dass Ihr Code auch mit Matlab kompatibel ist, vermeiden Sie den "Source" -Ansatz, da dieser Oktav-spezifisch ist. 'run' und Aufruf eines Skripts direkt (wenn auf dem Pfad) sind beide in Ordnung. –

+0

@EvanGunter siehe auch [http://de.mathworks.com/help/matlab/matlab_prog/command-vs-function-syntax.html](http://de.mathworks.com/help/matlab/ matlab_prog/command-vs-funktionssyntax.html) –