Inhaltsverzeichnis
1 Was ist MATLAB 1
2 Grafische Objekte 3
2.1 Einf uhrung 3
2.2 Grafische Objekte und ihre Properties 3
2.3 Setzen von Properties 3
2.3.1 Setzen in der Parameterliste 4
2.3.2 Setzen mit spezieller Funktion 4
2.3.2.1 Die Property-List-Methode 4
2.3.2.2 Die Cellarray-Methode 4
2.3.2.3 Die Struktur-Methode 4
2.3.3 Interaktive Methoden 5
2.4 Spezielle Funktionen 5
2.4.1 Abfragen von Properties 5
2.4.2 Suche nach Objekten 6
2.4.3 R ucksetzen von Properties 6
2.5 Klassen von Properties 7
2.6 Darstellung von Properties in dieser Dokumentation 8
2.7 Gemeinsame Properties 8
2.8 Ablauf der Erzeugung grafischer Objekte 9
2.8.1 Allgemeines 9
2.8.2 Leeren der Eventqueue 9
2.9 Darstellung grafischer Objekte 10
2.10 Kopieren von Objekten 11
2.11 Verbinden von Objekt-Properties 12
1
3 Objekten zugeordnete Funktionen 13
3.1 Allgemeine Form der Funktionsvereinbarung 13
3.2 Button-Down Funktion 13
3.3 Delete Funktion 14
3.4 Create-Funktion 14
3.5 Contextmenu 15
4 Farbe in Matlab 17
4.1 Einzelfarben 17
4.2 Colormaps 18
4.2.1 Definition 18
4.2.2 Darstellung der Colormap 19
4.2.3 Einstellung der Colormap 19
4.2.4 Ver andern einer Colormap 19
4.2.4.1 Ver andern der Helligkeit 20
4.2.4.2 Dynamische Ver anderung der Colormap 20
4.2.4.3 Colormap-Editor 20
4.3 Spezielle Grau-Colormap 21
4.4 Fixed Colormap 21
4.5 Weitere Farbcodierungen 22
4.5.1 HSV-Darstellung 22
4.5.2 NTSC-Darstellung 22
4.5.3 CMYK-Darstellung 23
4.5.4 Umrechnungsprogramme 23
5 Root-Objekt 25
5.1 Allgemeines 25
5.2 Root-Properties 25
5.3 Echofunktion 27
5.4 DiaryFunktion 27
2
6 Figure-Objekt 29
6.1 Einf uhrung 29
6.2 Funktionen 29
6.3 Properties 30
6.4 Pointer 31
7 Axes-Objekt 33
7.1 Axes 33
7.1.1 Erzeugung 33
7.2 Subplots 34
7.3 Achsen 34
7.3.1 Sichtbarkeit 35
7.3.2 Achsenskalierung 35
7.3.3 Lage der Achsen 36
7.3.4 Teilung der Achsen 36
7.3.5 Markierung der Achsen 36
7.3.6 Beschriftung der Achsen 37
7.3.7 Gitter 37
7.3.8 Zeichnungsbeschriftung 38
7.3.9 Properties f ur Linien und Beschriftungen 38
7.3.10 Weitere Properties 39
7.4 Seitenverh altnis (Aspect ratio) 39
7.5 Verbinden von Axes 40
7.6 Multi-Axes 41
7.7 Farbfestlegung bei Axes 41
7.8 Farbumschaltung beim Drucken von Grafik-Objekten 41
7.9 Cursor-Position 42
7.10 Koordinatenumrechnung 42
7.11 Entfernen von Objekten, L oschen von Axes 42
3
9.1.1 Funktionen mit einer unabh¨ angigen Variablen . . . . . . . . . 47
9.1.2 Funktionen mit zwei unabh¨ angigen Variablen . . . . . . . . . 48
9.2 Plot-Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
9.2.1 Plotfunktionen f¨ ur zweidimensionale Darstellungen . . . . . . 48
9.2.2 Plotfunktion f¨ ur dreidimensionale Darstellungen . . . . . . . . 49
9.2.3 Plotten zweidimensionaler Funktionen in logarithmischer Achsteilung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
9.2.4 Line-Properties . . . . . . . . . . . . . . . . . . . . . . . . . . 50
10.5.1 Plotten der Dichtefunktion . . . . . . . . . . . . . . . . . . . . 56
10.5.2 Plotten der Verteilungsfunktion . . . . . . . . . . . . . . . . . 57
10.6 Scatter-Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
10.6.1 Zweidimensionale Darstellung . . . . . . . . . . . . . . . . . . 57
10.6.2 Dreidimensionale Darstellung . . . . . . . . . . . . . . . . . . 57
10.6.3 Kombination von Scatter- und Dichtefunktion-Plots . . . . . . 58
12.1.1 Begriffsfestlegung . . . . . . . . . . . . . . . . . . . . . . . . . 61
12.1.2 Berechnung der Triangulation . . . . . . . . . . . . . . . . . . 61
12.1.3 Darstellung der Triangulation . . . . . . . . . . . . . . . . . . 62
12.2 Voronoi-Diagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
12.2.1 Begriffsfestlegung . . . . . . . . . . . . . . . . . . . . . . . . . 62
12.2.2 Berechnung und Darstellung des Voronoi-Diagramms . . . . . 63
13.1.1 Einf¨ uhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
13.1.2 Berechnung ¨ uber ¨ aquidistantem Punktraster . . . . . . . . . . 65
13.1.3 Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
13.1.4 Berechnung ¨ uber beliebiger Punktverteilung . . . . . . . . . . 67
13.1.5 Berechnung von Contourlinien . . . . . . . . . . . . . . . . . . 67
13.1.6 Berechnung des Gradienten . . . . . . . . . . . . . . . . . . . 68
13.1.7 Feldlinien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
13.2 Surface-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
13.2.1 Einf¨ uhrende Bemerkungen . . . . . . . . . . . . . . . . . . . . 69
13.2.2 Surface-Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
13.2.3 Die Surface-Properties . . . . . . . . . . . . . . . . . . . . . . 70
13.2.4 Colormap bei Surface-Objekten . . . . . . . . . . . . . . . . . 71
13.2.5 Textur f¨ ur Oberfl¨ achen von Surfaceplots . . . . . . . . . . . . 72
13.2.6 Verborgene Linien . . . . . . . . . . . . . . . . . . . . . . . . 72
13.2.7 Transparenz des Surface-Objekts . . . . . . . . . . . . . . . . 72
13.2.8 Verbindung mit anderen Objekten . . . . . . . . . . . . . . . . 73
5
13.3 Spezielle Darstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . 73
13.3.1 Contourlinien in zwei Dimensionen . . . . . . . . . . . . . . . 73
13.3.2 Contourlinien in drei Dimensionen . . . . . . . . . . . . . . . . 74
13.3.3 Gradientenberechnung und Quiverdarstellungen . . . . . . . . 74
13.3.4 Berechnung und Darstellung von Feldlinienin in zwei Dimensionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
13.3.5 Berechnung der Fl¨ achennormalen . . . . . . . . . . . . . . . . 76
14.2.1 Polygon-Darstellung . . . . . . . . . . . . . . . . . . . . . . . 77
14.2.2 Mehrfacetten-Darstellung . . . . . . . . . . . . . . . . . . . . 79
14.2.3 Umrechnung der Darstellungsarten . . . . . . . . . . . . . . . 80
14.2.4 Transparenz des Patch-Objekts . . . . . . . . . . . . . . . . . 80
14.2.5 Verbindung mit anderen Objekten . . . . . . . . . . . . . . . . 81
15.2.1 Vorbemerkungen . . . . . . . . . . . . . . . . . . . . . . . . . 84
15.2.2 Grundlegende Begriffe . . . . . . . . . . . . . . . . . . . . . . 84
15.2.3 Digitalisierung ortskontinuierlicher Bilder . . . . . . . . . . . . 85
15.5.1 Schwarz-Weiß- oder Intensity-Image (INT-Bilder) . . . . . . . 86
15.5.2 Bin¨ ar-Bilder oder Binary-Image(BIN-Bild) . . . . . . . . . . . 86
15.5.3 Farb-Bilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6
15.14.1 Scannen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 15.14.2 Digitale Fotographie . . . . . . . . . . . . . . . . . . . . . . . 94 15.14.3 Bildschirm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
16.2.1 Erzeugung achsenorthogonaler Slices . . . . . . . . . . . . . . 96
16.2.2 Erzeugung ebener Fl¨ achen-Slices beliebiger Lage . . . . . . . . 97 16.3 Darstellung von Skalarfeldern
durch Niveaufl¨ achen und Begrenzungen . . . . . . . . . . . . . . . . . 97 16.3.1 Erzeugung der Niveaufl¨ achen . . . . . . . . . . . . . . . . . . 97 16.3.2 Einf¨ arbung von Niveaufl¨ achen . . . . . . . . . . . . . . . . . . 98 16.3.3 Erzeugung von Begrenzungen . . . . . . . . . . . . . . . . . . 98 16.3.4 Bildung von Ausschnitten . . . . . . . . . . . . . . . . . . . . 99 16.3.5 Verbesserung der Darstellung . . . . . . . . . . . . . . . . . . 99
17 Dreidimensionale Vektorfelder und ihre Darstellung 103
17.1 Grundlagen 103
17.2 Feldlinien und verwandte Darstellungen 103
17.2.1 Berechnungsmethode 103
17.2.2 Feldlinien 104
17.2.3 Streamtubes 105
17.2.4 Streamribbons 105
17.3 Streamparticles 106
17.4 Coneplots 106
17.5 Hilfsfunktion 107
18 Darstellung von Graphen 109
18.1 Allgemeine Graphen 109
18.2 Erzeugung eines Baum-Graphen 109
19 Rechteck-Objekte 111
19.1 Erzeugung von Rechtecken 111
19.2 Aufziehen von Rechtecken mit der Maus 111
19.3 Bewegen von Rechtecken 112
20 Vermessung von Objekten 113
21 Bewegung von Objekten 115
21.1 Grunds atzliches 115
21.2 Translatorische Bewegung von Objekten 115
21.2.1 Translation eines Objekts durch Berechnung 115
21.2.2 Translation eines Objekts mittels Matlabfunktion 115
21.3 Rotation von Objekten 116
21.4 Beliebige Bewegungen im Figure 117
21.5 Zoomen 117
8
23.0.1 Grundlegende Begriffe . . . . . . . . . . . . . . . . . . . . . . 121
23.0.2 Camera-Properties . . . . . . . . . . . . . . . . . . . . . . . . 121
23.0.3 Kopplung eines Light-Objekte mit einem Kamera-Objekt . . . 124
23.0.4 Unterprogramme f¨ ur spezielle Kamerabewegungen . . . . . . . 125
24.1 ¨ Ubersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
24.2 Alpha-Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
24.2.1 AlphaData-Matrix f¨ ur Surface- und Image-Objekte . . . . . . 127
24.2.2 Face-Vertex-AlphaData-Matrix f¨ ur Patch-Objekte . . . . . . . 129
24.3 Alphamap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
24.4 ¨ Ubergang von AlphaData zur Transparenz . . . . . . . . . . . . . . . 131
25.3 ¨ Anderung des Toolbars und des Menubars
eines Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
25.3.1 Uimenu-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . 134
25.3.2 Erzeugen eines Figure-Toolbar . . . . . . . . . . . . . . . . . . 135
25.3.3 Uitoolbar-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . 135
25.3.4 Uipushtool-Objekt . . . . . . . . . . . . . . . . . . . . . . . . 136
25.3.5 Uitoggletool-Objekt . . . . . . . . . . . . . . . . . . . . . . . . 136
9
30.1 ¨ Uberblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 30.2 Kurzbeschreibung der Renderer . . . . . . . . . . . . . . . . . . . . . 149 30.2.1 Painters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 30.2.2 Z-Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 30.2.3 OpenGL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Berechnungen in der Technik.
→ MATLAB ist ein Betriebssystem, eine Prorammiersprache und ein Visualisierungssystem in einem.
→ MATLAB beinhaltet eine umfangreiche Programmbibliothek, die u.a. aus den LINPACK und EISPACK Projekten hervorgegengen ist.
→ MATLAB erlaubt sowohl die Darstellung zwei- und dreidimensionaler farbiger Grafiken wie auch die Generierung von Panels zur Programmorganisation.
wichtig wie die Berechnung selbst.
→ Ein Bild besteht in der Regel aus mehreren grafischen Objekten und erscheint auf dem Bildschirm in einem Fenster (Figure).
→ In Matlab existiert daher ein vielf¨ altiges System von Funktionen zur Darstellung und Ver¨ anderung existierender grafischer Objekte.
→ Ein grafisches Objekt wird durch seinen Typ und seine Eigenschaften (Properties) beschrieben.
H=ObjektTyp( Parameterliste)
bestimmt. Dabei wird ein Objekt-Handle H geliefert. Mit diesem Handle wird ein Zugriff auf die Objekt-Properties erm¨ oglicht.
→ Man kann Properties einstellen und damit das Aussehen des Objekts beeinflussen.
→ Objekte k¨ onnen Teil (Kind, Child) eines anderen grafischen Objekts (Vorfahr, Parent) sein.
→ Vor der Erzeugung eines Objekts m¨ ussen alle Vorfahren erzeugt worden sein. Bei manchen Erzeugungsfunktionen wird diese Erzeugung, falls erforderlich, automatisch durchgef¨ uhrt.
gen Propertyvalue. Letzterer kann ein numerischer Wert oder ein String sein.
→ Es wird dann eine Propertylist definiert.
PropertyName1,Propertyvalue1,PropertyName2,Propertyvalue2,....
→ Zur Einstellung der Properties ruft man
set(H,Propertylist)
Ist H ein Vektor, so werden die Properties in allen Objekten gesetzt.
→ In Matlab existieren auch Funktionen die zwei Methoden in einem Funktionsaufruf anwenden. Beispielsweise gilt HP=plot(t,x,Propertylist).
wobei jede Cell einen PropertyNamen aufnimmt.
→ Ebenso kann man in einem weiteren Cellarray (CPV) entsprechend die Propertyvalues darstellen.
→ Dann kann man die Properties einstellen:
set(H,CPN,CPV)
pertyvalue ist dann der zugeh¨ orige Wert.
→ Nun lautet die Funktion:
set(H,st)
4
plotedit on plotedit off propedit(...) propeditor(...)
kann man den Plot-Edit-Mode und die Propertyeditoren ein- oder ausschalten. Anstelle des Aufrufs von plotedit on kann man auch im Figure-Toolbar den Plotedit-Pfeil bet¨ atigen. Siehe hierzu auch MATLAB-Help .
→ Ruft man im eingeschalteten Plot-Edit-Mode die Funktionen
inspect
auf, so kann man mit der linken Maustaste ein Objekt anw¨ ahlen.
→ F¨ ur dieses Objekt erscheint ein Fenster. In diesem Fenster kann man die Einstellung aller Properties sehen und sie gegebenenfalls auch ver¨ andern.
→ Mit Aufruf von inspect(H) inspect([H1,H2,...Hn])
wird direkt die Bearbeitung der Properties f¨ ur das Objekt mit Handle H erm¨ oglicht.
→ Wird die Funktion mit einem Handlevektor aufgerufen
inspect([H1,H2,...Hn])
so k¨ onnen nur die allen Objekten gemeinsamen Properties bearbeitet werden.
{s}=get(H)
v=get(H,’PropertyName’) CPV=get(H,CPN)
CPN, CPV sind Cellarrays. 5
→ Die setzbaren Properties eines Objekts und ihre m¨ oglichen Werte erh¨ alt man mit: s=set(H) Alle Properties in der Struktur s. e=set(H,’Propertyname’) Falls Ergebnis Strings sind, dann ein Cellarray.
H=gcbf
Heimatfigure des Objekts, dessen Callback gerade ausgef¨ uhrt wird. H=gca Handle der aktuellen Axes. H=gco Handle des aktuellen Objekts. [O,H]=gcbo
O: Handle des Objektes, dessen CB gerade ausgef¨ uhrt wird. H: Handle wie bei gcbf().
→ Die nachfolgenden Funktionen liefern Handles auf mehrere Objekte:
H=findobj
Handle aller bestehenden Objekte als Spaltenvektor H=findobj(Propertylist)
Handle aller Objekte die jeweils alle Properties und die eingestellten Werte haben. H=findobj(h)
Objekte die Kinder des Objekts mit Handle h sind H=findobj(h,Propertylist) Objekte die Kinder des Objekts h sind und jeweils alle Properties haben. H=findobj(h,’flat’,Propertylist) Suche nach Objekten mit die Handles in Vektor h. Weitere Aufruflisten siehe MATLAB-Help .
reset(H)
H: Objekt-Handle
kann man Properties des Objekts mit Handle H, so sie Factory-Defaults haben, wieder mit diesem Wert belegen. Ansonsten werden sie gel¨ oscht.
→ Bei Figure-Objekten werden dei Properties Position, Units, Paperunits, Windowstyle nicht zur¨ uckgesetzt.
sind:
Nummer durchsucht. Tritt erstmalig eine Property auf, so wird diese benutzt.
→ Behandlung der Factory-Properties.
- Will man Factory-Properties sehen so ruft man: s=get(0,’Factory’) Alle Factory-Properties. s=get(0,’FactoryObjectPropertyname’) Spezielle Factory-Property.
- Die Factory-Properties kann man nicht setzen.
- Man kann eine Property auf den Factory-Wert setzen: set(H,’Propertyname’,’factory’)
→ Behandlung von Default-Properties.
- F¨ ur Default-Properties hat ein Element einer DefaultPropertylist folgendes Aussehen:
...’DefaultObjektProperty’,Propertyvalue,... Dabei ist Objekt entweder Axes, F igure oder Root.
- Default-Properties kann man sehen: s=get(H,’Default’) s ist eine Struktur. s=get(H,’DefaultObjectProperty’) Hier kann auch eine Liste stehen.
- Default-Properties kann man setzen: set(H,DefaultPropertylist)
H ist der Handle eines Axes-, Figure- oder Rootobjekts.
- Man kann eine Default-Property mit folgender Funktion entfernen: set(H,’DefaultObjectProperty’,’remove’)
H muss der Handle von Object sein. Im Aufruf kann auch eine Propertylist stehen.
7
2.6 Darstellung von Properties in dieser Doku-mentation
Propname: Tag, Propvalue: String
Propname: UserData, Propvalue: Beliebiges Datum. Empf ohlen : Struktur.
→ Zur Identifizierung von Objekten dienen:
Propname: Parent, Propvalue: Handle des Elterobjekts
Propname: Children, Propvalue: V ektor der Handle der Kinderobjekte Propname: Type, Propvalue: Objekt − T yp
→ Begrenzungen f¨ ur die Objektdarstellung sind:
Propname: Visible, Propvalue: on|of f
Propname: Clipping, Propvalue: on|of f
→ Die Markierung von Objekten erfolgt mit:
Propname: SelectionHighLight, Propvalue: on|of f
Propname: Selected, Propvalue: on|of f
Die erste Property erm¨ oglicht die Selektierung, die mit der zweiten Property durchgef¨ uhrt wird.
→ F¨ ur die Erkl¨ arung der beiden Properties:
Propname: HandleVisibility, Propvalue: on|of f
Propname: BusyAction, Propvalue: cancel|queue
wird auf MATLAB -Help verwiesen.
8
direkt ausgef¨ uhrt.
chert werden.
→ Diese Eventqueue wird geleert, die Anweisungen werden ausgef¨ uhrt und damit der Bildschirm ver¨ andert wenn bestimmte Ereignisse auftreten.
drawnow expose drawnow update
→ Die Eventqueue wird immer geleert, wenn ein MATLAB -Prompt (>> in MCW) auftritt oder wenn ein figure-, ginput- oder ein getframe-Befehl ausgef¨ uhrt wird.
→ Das Auftreten von Eingabefunktionen wie input und keyboard verursacht ebenfalls das Leeren der Eventqueue.
→ Auch Funktionen, die ein Warten des Programms auf bestimmte Ereignisse ausl¨ osen leeren die Eventqueue. Diese sind:
- Zeitlich begrenztes oder unbegrenztes Warten erreicht man mit der Funktion pause{t} Warten um t Sekunden.
Fehlt t: Warten bis eine Tastenbet¨ atigung erfolgt.
- Das Warten auf die Bet¨ atigung einer Maustaste oder die Bet¨ atigung einer Taste mit waitforbuttonpress
9
- Mit der Funktion uiwait{(F,{timeout})} Fehlt Figure-Handle F, dann F=gcf. Nach timeout Sekunden wird das Warten automatisch beendet. kann man warten. Mit der Funktion uiresume(F) kann man das Warten beenden.
- Die allgemeinste Funktion zum Warten auf ein Ereignis ist: waitfor(H,{’PropertyName’{,Propertyvalue}})
Das Warten wird beendet, wenn der angegebene Propertyvalue eingestellt wird.
Ist kein Propertyvalue angegeben, so wird das Warten beendet wenn die angegebene Property ge¨ andert wird.
Ist die Property f¨ ur das Objekt nicht vorhanden, so wird nicht gewartet.
nen k¨ onnen.
→ Das Root-, das Figure- und mindestens ein Axes-Objekt m¨ ussen auf dem Bildschirm gleichzeitig erscheinen.
→ Wieviele weiteren Objekte k¨ onnen gleichzeitig Children eines Axes-Objekt sein?
→ Werden mehrere Objekte in einem oder mehreren Axes bei geleerter Eventqueue dargestellt, so haben zwei Properties Einfluss auf das Aussehen:
- Zum einen ist dies die Figur-Property: Propname: NextPlot, Propvalue: add|new|replace|replacechildren
- Zum anderen die gleichnamige Axes-Property: Propname: NextPlot, Propvalue: add|replace|replacechildren
- Begrenztes Setzen der Properties: hold{(H)} Toggeln zwischen hold on und hold off hold({H},on) hold({H},off ) Defaulteinstellung hold({H},all) Fehlt der Axes-Handle H, so ist H=gca Bei all: wie on, h¨ alt auch Color- und LinestyleOrder.
10
- Der hold-Zustand bezieht sich auf ein Axes.
- Im Zustand hold on k¨ onnen beliebig viele Grafik-Objekte in einem Axes dargestellt werden.
- Im Zustand hold off werden vor der Darstellung eines Grafik-Objekts bestehende Objekte gel¨ oscht und die Axes-Properties auf ihre Defaulteinstellungen gebracht.
- Man kann den hold-Zustand auch abfragen: x=ishold
hold-Zustand: on bei x=1; off bei x=0.
Propname: EraseMode, Propvalue: normal|none|xor|background
steuert ebenfalls das Erscheinungsbild eines Objekts. Bei der Besprechung der Text-, Line- und Patchobjekte wird dies demonstriert.
Hn=copyobj(H,P)
H: Vektor der Handles der zu kopierenden Objekte. HP: Vektor der Handles der Parents der neuen Objekte. Hn: Vektor der Handles der neuen Objekte.
ander verbunden sind. Siehe das Demonstrationsprogramm DemoLink.
→ Ruft man
HL=linkprop(HO,{’Propertyname1’, ’Propertyname2’, ...}) Der Vektor HO beinhaltet die Objekt-Handle. Die {} beschreiben eine Zelle.
so werden die betreffenden Properties alle auf den Wert des Objekts mit Handle HO(1) eingestellt.
→ Wird nun eine verbundene Property im Objekt mit Handle HO(1) ge¨ andert, so wird die Property in den anderen Objekten ebenfalls ge¨ andert.
→ Man kann eine nichtverbundene Property in die Liste der verbundenen Properties aufnehmen und entfernen:
addprop(HL,’Propertyname’) removeprop(HL,’Propertyname’)
→ Man kann auch ein neues Objekt mit Handle HOn in die Liste der Objekte mit verbundenen Properties aufnehmen:
addtarget(HL,HOn) removetarget(HL,HOn)
12
func(H,ev{,arg1,...,argn})
H ist der Handle des Objekts bei dem die Funktion wirken soll. ev ist eine nicht genutzte Variable.
arg1 bis argn sind Zusatzparameter, die auch entfallen k¨ onnen. @func ist der Handle der Funktion.
→ F¨ ur die Zuordnung dieser Funktion zu einer Property gibt es zwei M¨ oglichkeiten:
- Wenn keine Zusatzparameter vorhanden sind ruft man: set(H,’FuncProp’,@Func)
- Wenn Zusatzargumente vorhanden sind ruft man: set(H,’FuncProp’,{@Func,arg1,... argn}) Die Klammern { } beschreiben hier eine Zellendefinition.
3.2 Button-Down Funktion
→ Wird ¨ uber einem Grafikobjekt eine Maustaste bet¨ atigt so kann eine Funktion ausgef¨ uhrt werden. Diese ist nach den oben dargelegten Regeln zu vereinbaren.
→ Diese Funktion ist mit der ButtonDownFcn-Property des Objekts mit Handle H zu verkn¨ upfen: set(H,’ButtonDownFcn’,@Func) set(H,’ButtonDownFcn’,{@Func,arg1,... argn})
→ Die Wirksamkeit der Button-Down Funktion kann man mit einer Property an-oder abschalten: Propname: HitTest, Propvalue: on|of f
Ist die Wirksamkeit f¨ ur ein Objekts abgeschaltet, so wird die Button-Down Funktion eines eventuell darunterliegenden angeschalteten Objekts aktiviert.
13
→ Mit der Property:
Propname: Interruptible, Propvalue: on|of f
kann man entscheiden ob eine Buttondown-Funktion von einer anderen Funktion unterbrochen werden kann oder nicht.
werden.
→ Eine nach obigen Regeln erzeugte Funktion ist daf¨ ur mit der DeleteFcn-Property des Objekts zu verkn¨ upfen: set(H,’DeleteFcn’,@Func) set(H,’DeleteFcn’,{@Func,arg1,... argn})
→ Es existiert die Property:
Propname: BeingDeleted, Propvalue: on|of f Diese Property ist on wenn die Deletefunktion ausgef¨ uhrt wird.
den.
→ Soll bei der Erzeugung eines Objekts eine Funktion ausgef¨ uhrt werden muss man vereinbaren: set(0,’DefaultxxxCreateFcn’,@Func) set(0,’DefaultxxxCreateFcn’,{@Func,arg1,... argn}) xxx ist der Name des Objekts, z.B. root,line etc.
→ Eine zweite M¨ oglichkeit ist folgende:
H=xxx(Parameterliste,’CreateFcn’,@Func)
Die Create-Function wird also bei der Objekterzeugung mit dem Objekt verkn¨ upft.
→ Die Create-Funktion kann man l¨ oschen:
set(0,’DefaultXXXCreateFcn’,’;’)
oder mit set(H,’CreateFcn’,’;’)
14
in der Property des Objekts der Handle des Contextmenues eingetragen: Propname: UIContextMenu, Propvalue: C
→ Wird ¨ uber einem Objekt die rechten Maustaste bet¨ atigt, so wird das Contextmenu ausgel¨ ost.
→ Es wird eine Liste von Labels angezeigt. Jedem Label kann ein Callback zu-geordnet werden.
C=uicontextmenu;
set(L,’UiContextMenu’,C) Contextmenu C dem Objekt L zuordnen uimenu(C,’Label 1’,’Text 1’{,’Callback’,cb1}) uimenu(C,’Label 2’,’Text 2’{,’Callback’,cb2}) . . .
uimenu(C,’Label n’,’Text n’{,’Callback’,cbn})
- Bei der RGB-Darstellung wird ein Farbvektor f = [R G B] aus den Farben Rot, Gr¨ un und Blau zur Festlegung der Farbe gebildet.
- F¨ ur jedes Element gilt 0 =< R <= 1, 0 =< G <= 1, 0 =< B <= 1.
- Auf diese Weise k¨ onnen sehr viele unterschiedliche Farben gebildet werden. Beispielsweise gilt f¨ ur
In MATLAB werden bei Anweisungen zur Informationsdarstellung oft bestimmte Einzelfarben benutzt. Eine Auswahl von Farben wird unter dem Namen Colorspec zusammengefaßt. Sie werden entweder als Farbvektor, als Name oder als Symbol dargestellt:
Bei vielen Objekten k¨ onnen Farben f¨ ur Properties definiert werden. Der jeweilige Property-Value kann aus
w|y|m|c|r|g|b|k|[r 1 g 1 b 1 ]|[r 2 g 2 b 2 ]|...|[r n g n b n ] gew¨ ahlt werden.
17
→ Farbfolgen.
Im Objekt Axes werden Farben zur Verf¨ ugung gestellt, die bei Erzeugung mehrerer Objekte durch eine Funktion (z.B. Plotfunktion) zur Unterscheidung benutzt werden. Diese m Farben k¨ onnen im aktuellen Axes mit der Funktion
set(gca,’ColorOrder’,m×3 RGB-Matrix)
gesetzt werden.
→ Dialogbox f¨ ur Farbauswahl.
Mit der Funktion col=uisetcolor({rgb}{,tit}) col: Rgb-Vektor. rgb: RGB-Vektor zur Initialisierung. tit: Bezeichnung der Dialogbox. kann man eine Farbe ausw¨ ahlen.
→ Alle Einzelfarben k¨ onnen durch Helligkeitesteuerung noch ver¨ andert werden. Siehe hierzu einen sp¨ ateren Abschnitt.
index entspricht somit eine Farbe.
Figures.
→ F¨ ur die Property gilt:
Propname: Colormap, Propvalue: hsv|autumn|bone|colorcube|cool|
copper|flag|gray|hot|jet|lines|pink|spring|summer|white|winter
Der Propertyvalue stellt den Namen einer RGB-Matrix, abgk¨ urzt fm, dar.
18
H=colorbar H ist der Colorbar-Handle. kann man die Colormap im Figure sichtbar machen.
→ Den Colorbar kann man auch durch Bet¨ atigung des Elements Insert Colorbar im Figure-Toolbar an- und abgeschaltet werden.
→ Die Lage des Colorbar relativ zu einem Axes ist ebenfalls eine Property.
Propname: Location, Propvalue: North|South|East|W est|N orthOutside|
SouthOutside|EastOutside|W estOutside
Diese kann man einstellen mit colorbar(’LocName’) set(gcf,’Location’,’LocName’)
→ Die Einstellung der Lage des Colorbar kann auch interaktiv erfolgen.
Hierzu w¨ ahlt man nach einem Klick mit der rechten Maustaste auf den Colorbar das Element Location.
→ Die Farbanteile einer Colormap k¨ onnen auch grafisch dargestellt werden. Dazu ruft man rgbplot(cm) cm: Matrix der Colormap.
farben durch Helligkeitssteuerung ver¨ andern und auf diese Weise neue Farben erzeugen.
→ Dazu f¨ uhrt man den Helligkeitsfaktor b, im Englischen brighten genannt, ein. Es gilt gilt −1 ≤ b ≤ 1.
→ Aus diesem Faktor b wird gebildet:
1
f¨ ur − 1 ≤ b ≤ 0 und g = 1 − b f¨ ur 0 < b ≤ 1. (4.1) g =
1 + b
→ Der neue Farbvektor f n entsteht dann aus dem alten Farbvektor f a durch Potenzieren mit g:
f n = f g a . (4.2)
Dies erreicht man mit der Funktion:
fn=brighten(f,b)
spinmap(t,inc)
Die Farbrotation dauert 10*t Sekunden. inc ist die Schrittweite der Rotation der Colormap. inc kann positiv und negativ sein. spinmat(’inf ’)
Beliebig langes Rotieren. Abbruch mit CTRL+C. kann man interessante Farbeffekte erzielen.
→ Man kann diesen Vorgang auch von Hand bewirken. Hierzu w¨ ahlt man nach einem Klick mit der rechten Maustaste auf dem Colorbar Interaktiv Colormap Shift und verschiebt dann den Cursor auf dem Colorbar.
ven Programms
colormapeditor erreichen.
20
→ Dieses Programm kann auch durch Bet¨ atigung der rechten Maustaste ¨ uber
dem Colorbar und Auswahl von Launch Colormapeditor aufgerufen werden.
→ In einem neuen Figure erscheint die Colormap. Diese ist mit Markierungen (Nodes) versehen, die unterschiedliche Funktionen haben:
→ Durch Einf¨ ugen und Verschieben der einzelnen Nodes kann man die Colormap umgestalten.
graymap=contrast(B{,m})
B: Martrix eines IND-Bildes, siehe Image-Objekte. B i,k ist der Index in eine Colormap. Es entsteht eine neue Colormap der Gr¨ oße m × 3. Fehlt m, dann wird die L¨ ange gleich der aktuellen Colormap.
den, sammelt MATLAB in der RGB-Matrix F ixed Colormap.
→ Diese erh¨ alt man ¨ uber die Property:
Propname: FixedColors, Propvalue: RGB − M atrix(readonly)
→ ¨ Uber den Speicherplatz siehe MATLAB-Help .
21
Arbeit zitieren:
Helmut Roderer, 2011, Grafik in MATLAB, München, GRIN Verlag GmbH
Dieser Text kann über folgende URL aufgerufen und zitiert werden:
Einbetten
DOI
Formatvorlage (Microsoft Word) für eine Diplomarbeit, Masterarbeit, Ha...
Für MS Word 2003 - Update 2010
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Formatvorlage (OpenOffice) für eine Diplomarbeit, Masterarbeit, Hausar...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 35 Seiten
Formatvorlage / Vorlage zur Erstellung einer Diplomarbeit, Bachelorarb...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 15 Seiten
Formatvorlage / Vorlage für eine Diplomarbeit / Hausarbeit
Für MS Word 2007 - dotx
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Anleitung zum Erstellen schriftlicher Arbeiten: Der Aufbau einer wisse...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 20 Seiten
Erstellen einer schriftlichen Hausarbeit
Vorlagen, Muster, Formulare, Infobroschüren
Hausarbeit, 14 Seiten
Grundtechniken wissenschaftlichen Arbeitens
Bibliografieren - Reden - Schr...
Vorlagen, Muster, Formulare, Infobroschüren
Skript, 46 Seiten
Ratgeber zur Erstellung wissenschaftlicher Arbeiten. Diplomarbeiten - ...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 39 Seiten
Informatik - Programmierung: Grafik in MATLAB ist nun auf dem Buchmarkt erhältlich
Informatik - Programmierung: neuer Titel erschienen: Grafik in MATLAB
Helmut Roderer hat einen neuen Text hochgeladen
MATLAB R2009, SIMULINK et STATEFLOW pour Ingénieurs, Chercheurs et Etu...
Nadia Martaj, Mohand Mokhtari
Grundlagen, Toolboxen, Beispie...
Anne Angermann, Michael Beuschel, Martin Rau, Ulrich Wohlfarth
MATLAB® und Simulink® in der Ingenieurpraxis
Modellbildung, Berechnung und ...
Wolf Dieter Pietruszka
Ingenieurmathematik kompakt - Problemlösungen mit MATLAB
Einstieg und Nachschlagewerk f...
Hans Benker
Wahrscheinlichkeitsrechnung und Statistik mit MATLAB
Anwendungsorientierte Einführu...
Ottmar Beucher
Scientific Computing with MATLAB and Octave
Alfio M. Quarteroni, Fausto Saleri, Paola Gervasio
0 Kommentare