icon .

Gnuplot

Ich bin noch nicht sicher, wie ich schlussendlich meine Grafiken aus gnuplot einbinden will, daher exportiere ich gnuplot in viele der denkbaren Terminals.-
Hauptproblem ist das eepic scheinbar nur für reines latex vernünftig funktioniert und ich daher entweder direkt pdfs einbinden muss oder hässliche latex-terminal-Bilder verwenden muss.- Indem ich zumindest *.fig ausgebe, kann ich die Grafiken für den Fall, dass ich etwas nicht a la gnuplot will, wenigstens bezüglich Beschriftung noch bearbeiten.

icon Emacs: gnuplot-mode

; aus .emacs
(setq auto-mode-alist
      (append '(("\\.gp$" . gnuplot-mode))
	      auto-mode-alist))  ;gp-Files im gnuplot-Modus oeffnen
Erst das x11-Fenster an eine genehme Stelle verschieben und die folgenden Shortcuts verwenden:
^x o other-window wechselt Focus zwischen den vertikal getrennten Fenstern. ^c^b führt aktuellen Buffer als Skript aus
M-r Holt den previous matching input als regexp
M-p Holt den previous input bsp: load '/pfadname/plot.gp'

icon 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! 

iconHistogramm erstellen:

plot [0:10] "datei.dat" with hist 
# Plotten für Latex
set terminal latex | emtex {courier|roman|default} {}  # manual S.83 
# oder: eepic

icon 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.

iconps_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

iconWeiterführende Links:


Matlab

iconMatlab und Emacs:
matlab.el Einbau in den Emacs

icon .* bzw .^ für die Multiplikation von Vektoren, die in einer Funktion verwendet werden.

icon Farboptionen beim drucken:
Einfach 'r' für rot.
Gepunktet: 'r.' oder ':'
Gedashed: '--r'
Farben in Kurzform: c, m, y, k, r, g, b, w

Schleifen und ähnliche praktische Dinge:

icon For-Schleife:

for i = 30:100
  V(i) = Funktion(i*10);
end

Nichtlineare Gleichungssysteme

Erstelle Funktionen für nichtlineares Gleichungssystem:
% 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);
Das ergibt verschiedene Lösungen, z.B. -0.6461 und 3.2304 mit Startwert:
x_0=[1,4]'
% oder: x = zeros(2)
mit Optimierungs-Toolbox: (Least Squares)
Lsg = lsqnonlin('nlgs',x_0)
Damit ist eine Lösung des Gleichungssystem in der Nähe gefunden.
fsolve kann natürlich auch verwendet werden.

Octave

Skripte mit Octave

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

Links Octave

Octave Funktionsindex
Octave
Wiki-category
Oktave Wiki


Lapack

Infos zur Verwendung von lapack (unter Linux, inkl. Blas)
Netlib-Home

Links

GAMS bei netlib (numerical software categories)
Matlab home
Maple home
Mupad



SASTEFRI - Start Kontakt Stefan Mohsler: Meine Emailadresse als Bild
Last modified: Wed Jul 21 11:02:47 CEST 2010