Benutzer-Werkzeuge

Webseiten-Werkzeuge


matlab

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
matlab [2014/03/26 12:45] – [Aktuelles Datum anzeigen] ollimatlab [2024/04/01 07:47] (aktuell) – [Zuweisen von Defaultwerten in Properties von Klassen] olli
Zeile 1: Zeile 1:
 ====== Matlab ====== ====== Matlab ======
 +Matlab ist eine Mathematik-Software der Firma Mathworks
 ===== Dynamische Variablennamen ===== ===== Dynamische Variablennamen =====
 Um einen Wert einer Variable mit dynamischem Namen zuzuweisen: Um einen Wert einer Variable mit dynamischem Namen zuzuweisen:
Zeile 31: Zeile 32:
 Um zu prüfen, ob eine Variablen von einem definierten Typ ist gibt es z.B. Um zu prüfen, ob eine Variablen von einem definierten Typ ist gibt es z.B.
 <code matlab> <code matlab>
-isa(x,'sym')+isa(x,'sym'%issymbolic(x) existiert nicht
 ischar(x) ischar(x)
 isfloat(x) isfloat(x)
Zeile 80: Zeile 81:
 </code> </code>
  
 +===== Fehler beim Aufruf von Ghostscript aus MATLAB =====
 +Viele Matlab-Skripte zum Erzeugen von hochqualitiven Plots für Veröffentlichungen, wie z.B. [[http://www.mathworks.com/matlabcentral/fileexchange/23629-export-fig|export_fig]] (und andere) rufen [[Ghostscript]] direkt aus MATLAB auf. Dabei kann es zu folgendem Fehler kommen:
 +<code>
 +Error: /undefined in /findfont
 +Operand stack:
 +120 Helvetica ISOLatin1Encoding Helvetica Helvetica
 +Execution stack:
 +%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1916 1 3 %oparray_pop 1915 1 3 %oparray_pop --nostringval-- 1899 1 3 %oparray_pop 1787 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- 1868 5 5 %oparray_pop
 +Dictionary stack:
 +--dict:1180/1684(ro)(G)-- --dict:0/20(G)-- --dict:82/200(L)-- --dict:97/160(L)-- --dict:9/85(L)--
 +Current allocation mode is local
 +Current file position is 10662
 +GPL Ghostscript 9.07: Unrecoverable error, exit code 1 
 +</code>
 +Das Problem ist, das MATLAB den LD_LIBRARY_PATH für seine Zwecke so verändert, das Ghostscript nicht mehr funktionsfähig ist. Vor dem Aufruf von Ghostscript muss LD_LIBRARY_PATH wieder geleert werden. Für export_fig muss in der Datei ghostscript.m die Zeile
 +<code matlab>
 +system(sprintf('"%s" %s', gs_path, cmd));
 +</code>
 +durch
 +<code matlab>
 +system(sprintf('export LD_LIBRARY_PATH=""; "%s" %s', gs_path, cmd));
 +</code>
 +ersetzt werden.
 ===== Ausgabe von fsolve ===== ===== Ausgabe von fsolve =====
 Nach der Ausführung von fsolve gibt die Funktion Informationen zur Lösung aus. Wenn das störend ist, kann die Ausgabe mit der Option "display off" unterdrückt werden:  Nach der Ausführung von fsolve gibt die Funktion Informationen zur Lösung aus. Wenn das störend ist, kann die Ausgabe mit der Option "display off" unterdrückt werden: 
Zeile 126: Zeile 150:
  
 Die zugewiesenen DisplayNames lassen sich auch im Property Editor von Matlab anzeigen. Die zugewiesenen DisplayNames lassen sich auch im Property Editor von Matlab anzeigen.
 +
 +===== Keine LaTeX-Interpretation (z.B. Tiefstellung) in Plotbeschriftung  =====
 +Standardmäßig verwendet MATLAB einige [[LaTeX]]-ähnliche Befehle zur Textformatierung, z.B. den Unterstrich "_" zum Tiefstellen. Möchte man dies nicht, kann dies für einzelne Elemente oder global deaktivieren.
 +
 +Für einzelne Titel:
 +<code matlab>
 +title(text, 'interpreter', 'none')
 +</code>
 +
 +Für einzelne Legenden (Einträge als Cell Array):
 +<code matlab>
 +legend({'text_1', 'text_2'}, 'Interpreter', 'none');
 +</code>
 +
 +Für einzelne Legenden (mehrere Strings als Einträge):
 +<code matlab>
 +l = legend('text_1', 'text_2');
 +set(l, 'Interpreter', 'none')
 +</code>
 +
 +Global:
 +<code matlab>
 +set(0, 'DefaulttextInterpreter', 'none')
 +</code>
  
 ===== Animationen erstellen ===== ===== Animationen erstellen =====
Zeile 158: Zeile 206:
 </code> </code>
 anzeigen lassen. anzeigen lassen.
 +
 +===== Zuweisen von Defaultwerten in Properties von Klassen =====
 +Defaultwerte für Properties von Klassen (=Membervariablen) lassen sich entweder in den Properties direkt setzen oder beim Aufruf des Konstruktors.
 +
 +Beispiel mit Zuweisung direkt in den Properties:
 +<code matlab>
 +classdef MyClass
 +   properties
 +      PropertyOne = 42;
 +      PropertyTwo = MyClass2();
 +   end
 +end
 +</code>
 +Dabei wird die rechte Seite nur beim ersten Instanzieren der Klasse MyClass ausgewertet. Der Konstruktor von MyClass2 wird deshalb nur //einmal// ausgeführt. PropertyTwo enthält daher immer das gleiche Objekt, siehe
 +[[https://de.mathworks.com/help/matlab/matlab_oop/initialize-property-values.html#brqy3km-10|Defining Default Values]]
 +
 +Beispiel mit Zuweisung beim Aufruf des Konstruktors:
 +<code matlab>
 +classdef MyClass
 +   properties
 +      PropertyOne
 +      PropertyTwo; 
 +   end
 +   methods
 +      function obj = MyClass()
 +         obj.PropertyOne = 42;
 +         obj.PropertyTwo = MyClass2();
 +      end
 +   end
 +end
 +</code>
 +Auf diese Art wird bei jeder Instanzierung von MyClass eine Auswertung der rechten Seiten vorgenommen. Der Konstruktor von MyClass2 wird daher //mehrmals// ausgeführt, siehe 
 +[[https://de.mathworks.com/help/matlab/matlab_oop/initialize-property-values.html#brqy3km-11|Set Property Values in the Constructor]]
 +
 +===== MATLAB-Skript von der Kommandozeile starten =====
 +Um ein MATLAB-Skript ohne grafische Ausgabe zu starten, kann folgender Befehl verwendet werden: 
 +<code bash>
 +matlab -nosplash -nodisplay -nodesktop -r scriptToStart
 +</code>
 +===== Links =====
 +  * [[http://www.mathworks.de/products/matlab/|Matlab Homepage]]
 +  * [[http://undocumentedmatlab.com/|Sammlung von undokumentierten Matlab-Funktionen]]
 +  * [[http://ubcmatlabguide.github.io/|Yet another guide to Matlab, u.a. mit Tipps zur Beschleunigung]]
 +  * [[https://github.com/tminka/lightspeed|Lightspeed Bibliothek von Tom Minka]]
 +  * [[http://en.wikibooks.org/wiki/MATLAB_Programming/Struct_Arrays|Hinweise zu Structs]]
 +  * [[http://en.wikibooks.org/wiki/MATLAB_Programming/Error_Messages|Häufige MATLAB-Fehlermeldungen und ihre Ursachen]]
 +  * [[http://stackoverflow.com/a/1745686|Matlab OOP Performance (mit Benchmark Code)]]
 +  * [[http://www.henning-thielemann.de/ScriptingHater.html|Scriptsprachen-Hassen leichtgemacht]] (insbesondere MATLAB)
 +  * [[https://abandonmatlab.wordpress.com/|Abandon MATLAB]]
matlab.1395834344.txt.gz · Zuletzt geändert: 2014/03/26 12:45 von olli