.
Emacs: gnuplot-mode
; aus .emacs (setq auto-mode-alist (append '(("\\.gp$" . gnuplot-mode)) auto-mode-alist)) ;gp-Files im gnuplot-Modus oeffnen
Strings verbinden usw.:
# Strings ALT_i verbinden NEU_1 = ALT_1.ALT_2 # oder NEU_2 = ALT_1.".ps" # String als Variable auffassen: print @NEU_1 # WARNUNG: die Variable, deren Namen unter NEU_1 gespeichert # ist muss natürlich existieren!
Histogramm erstellen:
plot [0:10] "datei.dat" with hist # Plotten für Latex set terminal latex | emtex {courier|roman|default} {} # manual S.83 # oder: eepic
Scripting:
Elegantes Vorgehen:
Erzeugen eines gnuplot-Skriptfiles:
Auführen aller zu "skriptenden" Kommandos in gnuplot.
Mit save
'skriptname' abspeichern.
Ausführbar machen und man ist
Startklar.
Probleme: Ich weiss nicht, wie ich verschiedene
Filenamen übergeben kann, um das Skript universeller zu machen.
Alternativ kann ich die Bilder ja auch in Standard-Latex übersetzen,
mit einem Master, der alle Einstellungen enthält.
ps_guide.ps (unter
gnuplot-doc) enthält viele nützliche Postscript-Zeichen. Wichtig ist, dass ich special characters mit backslash schützen kann, unter doppelten Gänsefüsschen brauche ich doppelte Backslash
Eine weitere Möglichkeit ist die Verwendung eines Bash-Skripts. Diese ist eher umständlich, ermöglicht aber die einfache Eingabe eines Filenamens als Kommandozeilen-Argument. Hier ein Beispiel für einen 3D-Plot:
#!/bin/bash echo "Script to plot XYZ with gnuplot in command-line" echo "set terminal postscript; set output '$1.ps'; set data style lines;set zlabel 'ZDATA'; set xlabel 'x';\ set ylabel 'y';set contour base; set surface; set xrange[0:6.3];set yrange [0:6.3]; set view 50,10,1.0,1.0;\ show contour; splot '$1' title 'ZDATANAME'" | gnuplot
Weiterführende Links:
Matlab und Emacs:
matlab.el
Einbau in den Emacs
.* bzw .^ für die
Multiplikation von Vektoren, die in einer Funktion verwendet werden.
Farboptionen beim drucken:
Einfach 'r' für rot.
Gepunktet: 'r.' oder ':'
Gedashed: '--r'
Farben in Kurzform: c, m, y, k, r, g, b, w
For-Schleife:
for i = 30:100 V(i) = Funktion(i*10); end
% nlgs.m function f = nlgs(x) f(1) = 4*x(1)*x(2) + x(1)^2*x(2) + 7; f(2) = x(2) + 5*x(1);
x_0=[1,4]' % oder: x = zeros(2)
Lsg = lsqnonlin('nlgs',x_0)
Dann funktioniert es wie ein Bashskript: Mit der option -qf wird Octave leise gestartet und die .octaverc übersprungen. Gegebenenfalls den loadpath einbauen, dann ist das Skript alllerdings nicht mehr allgemein.
#! octave -qf # Falls ich nur eine Funktion will, so muss sie # anscheinend den Namen des files ohne .m tragen. # Indem ich aber 1; bzw. 2; davorschreibe scheint es # nicht nötig zu sein. 1; function first printf("hello world"); endfunction 2; function sec # dies ist der erste kommentarblock dieser Funktion, # der mit >>help sec << auch ausgegeben wird. # Ermöglicht schöne also Dokumentation für andere Nutzer printf("und tschuess"); endfunction
Octave Funktionsindex
Octave
Wiki-category
Oktave Wiki
GAMS bei netlib (numerical software categories)
Matlab home
Maple home
Mupad