2009-12-07 14 views
10

Es scheint mir, dass es zwei Möglichkeiten gibt Matlab im Batch-Modus auszuführen:Lauf Matlab im Batch-Modus

die erste:

unset DISPLAY 
matlab > matlab.out 2>&1 << EOF 
plot(1:10) 
print file 
exit 
EOF 

Die zweite verwendet Option "-r MATLAB_command":

matlab -nojvm -nosplash -r MyCommand 

Sind diese beiden gleichwertig?

Was bedeutet "< < EOF" und das letzte "EOF" in der ersten Methode?

Danke und Gruß!

Antwort

6

Die erste Methode einfach redirects die Standardausgabe > matlab.out und der Standardfehler 2>&1 in die Datei matlab.out.

Dann verwendet es die heredoc Art und Weise der Eingabe an MATLAB übergeben (das ist nicht spezifisch für MATLAB, es ist eine Methode der Weitergabe mehrerer Zeilen als Eingabe für Befehlszeilenprogramme im Allgemeinen).

Die Syntax ist << gefolgt von einer eindeutigen Kennung, dann Ihr Text, schließlich die eindeutige ID zu beenden. Sie können versuchen, diese auf der Schale:

cat << END 
some 
text 
multiple lines 
END 

Das zweite Verfahren zur Verwendung der -r Option startet MATLAB und führen Sie die Anweisung sofort weitergegeben. Dies können einige Befehle oder der Name eines Skripts oder einer Funktion sein, die auf dem Pfad gefunden werden. Es ist äquivalent zu tun so etwas wie:

python -c "print 'hello world'" 

finden diese page für eine Liste der anderen Startoptionen.