2 Einführung im Matlab, Übungen von Mathematik

fprintf(fid, <format> , <variable> ); . Dabei muss zuerst mit dem fopen - Befehl der Variablen fid eine Datei zugeordnet werden. Für <format> müssen wir eine ...

Art: Übungen

2021/2022

Hochgeladen am 28.06.2022

Irenäus_Bleibtreu
Irenäus_Bleibtreu 🇩🇪

4.4

(46)

53 dokumente

1 / 44

Toggle sidebar

Diese Seite wird in der Vorschau nicht angezeigt

Lass dir nichts Wichtiges entgehen!

bg1
E. Luik: Einführung in Matlab 25
2 Einführung im Matlab
2.1 Grundlagen
2.1.1 Was ist Matlab
Matlab ist ein kommerzielles (daher teures) Softwaresystem für numerische Berechnun-
gen, welches in den MINT-Fächern weit verbreitet ist. Die Grundausstattung (nur darauf
bezieht sich diese Einführung) kann durch zahlreiche Zusatzpakete (Toolboxen) erweitert
werden, z.B. PDE-Toolbox, Optimization Toolbox, Financial Toolbox.
Der Name Matlab stammt von Matrix laboratory und deutet schon die Philosophie an:
Matrizen bilden die Grundelemente. Reelle Zahlen werden als 1×1-Matrizen aufgefasst;
ebenso sind Vektoren spezielle Matrizen. Aus diesem Grund sind Kenntnisse in der ele-
mentaren Matrizenrechnung erforderlich.
Matlab arbeitet interaktiv, d.h. die eingegebenen Kommandos werden sofort ausgeführt
(Interpreter), hat aber alle Elemente einer modernen Programmiersprache.
2.1.2 Matlab starten
Vor dem erstmaligen Aufruf von Matlab empfehlen wir, sich einen eigenen Ordner (z.B.
mit dem Namen matlab) anzulegen und in diesen vor dem Aufruf zu wechseln.
In einem kommandoorientierten Fenster wird Matlab durch den Befehl
matlab bzw. matlab &
gestartet. Dabei bewirkt das &- Zeichen, dass Matlab in einem neuen, unabhängigen
Fenster (d.h. im Hintergrund) läuft. Das Fenster, aus dem Matlab gestartet wurde, steht
für andere Aufgaben weiter zur Verfügung. Wird das &- Zeichen weggelassen, so ist
dieses Fenster so lange blockiert, bis Matlab wieder beendet wird.
Eventuell besitzt die graphische Oberfläche Ihres Rechners ein Matlab-Icon. Dann können
Sie Matlab durch Anklicken dieses Symbols starten.
2.1.3 Das Matlab-Fenster
Nach dem Starten erhalten wir ein neues Fenster (siehe unten), welches aus drei Teilfens-
tern (Voreinstellung) besteht. Das momentan aktive Unterfenster ist mit einem blauen
Balken am oberen Rand markiert. Die Größe der Unterfenster lassen sich den indivi-
duellen Wünschen anpassen. Dazu klicken Sie mit der linken Maustaste auf den Rand
zwischen den Fenstern und verschieben diesen (bei gedrückter linker Maustaste).
Für uns interessant ist zunächst das Unterfenster mit der Überschrift
Command Window
Hier geben Sie die Matlab-Befehle ein. Auch die Ergebnisse werden in diesem Fenster
angezeigt.
Alle eingegebenen Matlab-Kommandos werden im Fenster
Command History
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c

Unvollständige Textvorschau

Nur auf Docsity: Lade 2 Einführung im Matlab und mehr Übungen als PDF für Mathematik herunter!

E. Luik: Einführung in Matlab 25

2 Einführung im Matlab

2.1 Grundlagen

2.1.1 Was ist Matlab

Matlab ist ein kommerzielles (daher teures) Softwaresystem für numerische Berechnun- gen, welches in den MINT-Fächern weit verbreitet ist. Die Grundausstattung (nur darauf bezieht sich diese Einführung) kann durch zahlreiche Zusatzpakete (Toolboxen) erweitert werden, z.B. PDE-Toolbox, Optimization Toolbox, Financial Toolbox.

Der Name Matlab stammt von Mat rix lab oratory und deutet schon die Philosophie an: Matrizen bilden die Grundelemente. Reelle Zahlen werden als 1 × 1-Matrizen aufgefasst; ebenso sind Vektoren spezielle Matrizen. Aus diesem Grund sind Kenntnisse in der ele- mentaren Matrizenrechnung erforderlich.

Matlab arbeitet interaktiv, d.h. die eingegebenen Kommandos werden sofort ausgeführt (Interpreter), hat aber alle Elemente einer modernen Programmiersprache.

2.1.2 Matlab starten

Vor dem erstmaligen Aufruf von Matlab empfehlen wir, sich einen eigenen Ordner (z.B. mit dem Namen matlab) anzulegen und in diesen vor dem Aufruf zu wechseln.

In einem kommandoorientierten Fenster wird Matlab durch den Befehl

matlab bzw. matlab &

gestartet. Dabei bewirkt das & - Zeichen, dass Matlab in einem neuen, unabhängigen Fenster (d.h. im Hintergrund) läuft. Das Fenster, aus dem Matlab gestartet wurde, steht für andere Aufgaben weiter zur Verfügung. Wird das & - Zeichen weggelassen, so ist dieses Fenster so lange blockiert, bis Matlab wieder beendet wird.

Eventuell besitzt die graphische Oberfläche Ihres Rechners ein Matlab-Icon. Dann können Sie Matlab durch Anklicken dieses Symbols starten.

2.1.3 Das Matlab-Fenster

Nach dem Starten erhalten wir ein neues Fenster (siehe unten), welches aus drei Teilfens- tern (Voreinstellung) besteht. Das momentan aktive Unterfenster ist mit einem blauen Balken am oberen Rand markiert. Die Größe der Unterfenster lassen sich den indivi- duellen Wünschen anpassen. Dazu klicken Sie mit der linken Maustaste auf den Rand zwischen den Fenstern und verschieben diesen (bei gedrückter linker Maustaste).

Für uns interessant ist zunächst das Unterfenster mit der Überschrift

Command Window

Hier geben Sie die Matlab-Befehle ein. Auch die Ergebnisse werden in diesem Fenster angezeigt.

Alle eingegebenen Matlab-Kommandos werden im Fenster

Command History

gespeichert und können von dort wieder in das Command Window kopiert werden. Dies gilt auch für die Matlab-Befehle einer früheren Sitzung.

2.1.4 Matlab beenden

Um Matlab zu beenden, klicken Sie mit der linken Maustaste im MATLAB-Fenster das Symbol links oben an und wählen dann schließen aus.

Alternativ können Sie im Command Window den Befehl

exit

eingeben.

Beim Verlassen wird die aktuelle Matlab-Konfiguration (Größe und Anzahl der Unter- fenster) gespeichert und erscheint so beim nächsten Matlab-Aufruf wieder.

2.1.5 Online-Hilfe

Eine komplette Dokumentation von Matlab (in englischer Sprache) befindet sich auf dem Rechner. Diese wird gestartet durch Eingabe von

doc

im Command Window. Es wird dann ein neues Fenster Help eröffnet.

Anmerkung: Ältere Matlab-Versionen verwenden statt doc das Kommando helpdesk.

führt (im Gegensatz zu den Programmiersprachen wie Fortran, Pascal oder C, bei denen das komplette Programm zuerst übersetzt werden muss).

Dabei ist zu beachten:

  • Es wird zwischen Groß- und Kleinbuchstaben unterschieden.
  • Das Zeichen % dient als Kommentarzeichen: Der Text rechts davon bis zum Zei- lenende wird als Kommentar betrachtet (und somit nicht als Matlab-Befehl inter- pretiert).
  • Ein Matlab-Befehl kann sich über mehrere Zeilen erstrecken, muss dann jedoch am Zeilenende mit dem Zeichen ... markiert werden.
  • In einer Zeile dürfen mehrere Matlab-Befehle stehen. Diese müssen jedoch durch einen Strichpunkt (bzw. ein Komma) getrennt werden.
  • Ein Matlab-Kommando kann mit einem Strichpunkt abgeschlossen werden. Dann wird das Ergebnis dieses Befehls nicht im Command Window angezeigt. Ohne Strichpunkt am Ende erscheint das Ergebnis im Command Window.
  • In Matlab können auch Linux-Kommandos eingegeben werden. Diese werden mit einem vorangestellten! gekennzeichnet. So wird durch !ls -al der Inhalt des aktuellen Verzeichnisses im Command Window aufgelistet.

Beispiele x = 1. X = 1e-7; a = 1.5; b = 4.5; c = 3.8; s = (a+b+c)/3; % Mittelwert u = 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/ ... -1/8 + 1/9 - 1/10 + 1/11 - 1/12; u

X und x sind verschiedene Variablen. Die letzte Zeile bedeutet, dass der Wert der Varia- blen u im Command Window ausgegeben wird. Mit dem Kommando

clc

werden alle Einträge im Command Window gelöscht.

2.1.7 Matlab-Programme

Es besteht die Möglichkeit, mehrere Matlab-Kommandos in eine Datei zu schreiben (mit Hilfe eines Editors). Diese muss den Zusatz .m haben und wird als Matlab-Skript be- zeichnet. Es gibt zwei Möglichkeiten:

  1. Verwendung eines (Linux-)Editors (z.B. emacs, kile) Dies hat den Vorteil, dass ein Matlab-Skript erstellt werden kann, ohne Matlab selbst gestartet zu haben. Sie können Ihr Programm zu Hause eingeben und im Rechner-Pool dann unter Matlab ausführen.

E. Luik: Einführung in Matlab 29

  1. Verwendung des Matlab-Editors Matlab besitzt einen eigenen Editor. Dieser wird aktiviert durch Anklicken (mit der linken Maustaste) von HOME und dann New Script. Dadurch wird ein neues Fenster eröffnet, und wir können nun das Programm eintippen. Soll ein bereits existierendes Matlab-Skript geladen werden, so klicken wir statt New Script den Menüpunkt Open an und wählen dann den Dateinamen aus.

Der Matlab-Editor kann auch im Kommand Window durch Eingabe von edit bzw. edit < datei > gestartet werden. Er funktioniert ähnlich wie Emacs, zusätzlich werden jedoch ge- wisse Matlab-Befehle farbig dargestellt ( Syntax Highlighting ).

Ferner ist der Matlab-Editor mit einem Debugger kombiniert. Ein Debugger dient dazu, in einem Programm die einzelnen Anweisungen Schritt für Schritt zu verfolgen und Zwischenergebnisse anzuschauen. Damit hat man ein nützliches Mittel bei der Fehlersuche.

Beispiel: Wir geben in die Datei beispiel1.m folgende Matlab-Kommandos ein:

% Es werden Messergebnisse gezeichnet. x = [0.333 0.167 0.0833 0.0416 0.0208 0.0104 0.0052]; y = [3.636 3.636 3.236 2.666 2.114 1.466 0.866]; plot(x,y,’+’); xlabel(’ Konzentration c’,’Fontsize’,15); ylabel(’ Geschwindigkeit \nu’,’Fontsize’,15); title(’Messergebnisse’,’Fontsize’,15);

Dieses Matlab-Programm wird durch Eingabe von

beispiel

gestartet (im Command Window). Die einzelnen Matlab-Kommandos werden später er- läutert.

2.1.8 Der Matlab-Pfad

Beim Start eines Matlab-Kommandos durchsucht Matlab gewisse Verzeichnisse (Ordner) nach den entsprechenden Matlab-Dateien (im obigen Beispiel nach beispiel1.m). Der Matlab-Pfad (matlab search path) legt fest, welche Verzeichnisse (und in welcher Rei- henfolge) durchsucht werden. Wird in diesen Ordnern die gesuchte Datei nicht gefunden, so erhält man eine Fehlermeldung.

Der Anwender hat die Möglichkeit, diesen Matlab-Pfad an seine Bedürfnisse anzupassen, z.B. weitere Verzeichnisse aufzunehmen. Dazu wird im Matlab-Fenster

HOME −→ Set Path

angeklickt. Dadurch wird ein weiteres Fenster mit der Überschrift Set Path geöffnet, in welchem der bisherige Matlab-Pfad angezeigt wird. Hier können nun die gewünschten Änderungen vorgenommen werden.

E. Luik: Einführung in Matlab 31

2.2 Umgang mit Matrizen

Matlab arbeitet stets mit dem Datentyp Matrix (engl. array ). Daher stammt auch der Name Matlab: Mat rix lab oratory. Eine reelle Zahl ist dann eine 1 × 1 - Matrix, ein Zeilenvektor eine 1 × n - Matrix und ein Spaltenvektor eine n × 1 - Matrix. Intern werden die Matrixelemente als reelle Zahlen mit doppelter Genauigkeit dargestellt.

2.2.1 Matrix belegen

Eine Matrix wird zeilenweise eingegeben; jede Zeile wird mit einem Strichpunkt abge- schlossen, die einzelnen Elemente der Zeile werden durch Leerzeichen oder Kommata getrennt. So wird zum Beispiel durch

A = [1 2 3 4; 5 6 7 8; 9 10 12 12; 13 14 15 16]

die Matrix

A =

  

   (5)

definiert. Beachten Sie die eckigen Klammern. Durch

x = [1 2 3 4] y = [10; 20; 30]

werden die Vektoren

x =

( 1 2 3 4

) und y =

 

 

erzeugt. Auf ein Matrix-Element wird durch Angabe seiner Position (Zeilenindex, Spal- tenindex) zugegriffen. Zum Beispiel erhalten wir durch Eingabe von

A(3,2) = 0

die Matrix

A =

   

   

Eine Matrix kann mit Nullen bzw. Einsen vorbelegt werden. Durch

A = zeros(4,3) B = ones(2,5)

erhalten wir die Matrizen

A =

   

    und B =

( 1 1 1 1 1 1 1 1 1 1

) .

Die n × n - Einheitsmatrix wird in Matlab durch das Kommando eye(n,n) erzeugt. Dabei muss n schon mit einem Wert belegt sein. So liefert

n = 3 I = eye(n,n)

die Matrix

I =

  

  .

Das Matlab-Kommando

x = 0:0.1:

erzeugt den Zeilenvektor x = (0 , 0_._ 1 , 0_._ 2 ,... , 1_._ 9 , 2_._ 0). Ferner liefert

linspace(a,b,n)

n äquidistante Punkte aus dem Intervall [ a, b ].

2.2.2 Teilbereiche einer Matrix

Von einer bereits definierten Matrix kann man Teilbereiche (Zeilen, Spalten, Unterma- trizen) ansprechen. Für die Matrix A aus (5) liefern die Kommandos

u = A(2,:) v = A(:,3) B = A(1:3,1:2) C = A(3:4,3:4)

die folgenden Vektoren bzw. Matrizen:

u =

( 5 6 7 8

) , v =

  

   , B =

 

  , C =

( 11 12 15 16

) .

Eine Matrix kann auch mit Hilfe von Teilmatrizen definiert werden. So erzeugt zum Beispiel die Sequenz

I = eye(2,2); Z = zeros(2,2); E = [2 -1; -1 2]; D = [E,Z,I; Z,E,Z; I,Z,E]

die Matrix

D =

     

     

Aus einer Matrix können Teilbereiche gestrichen werden. Dadurch ändert sich die Größe der Matrix. Betrachten wir die Matrix A aus (5) und geben dann

A(2,:) = [ ]

ein, so wird aus A die zweite Zeile gestrichen:

A =

 

 .

was cij = aij /bij bedeutet. Für Matrizen kennt Matlab die Operationen

D = A/B (hier ist D die Matrix, welche A = D · B erfüllt), x = A\b (dann ist x die Lösung des lin. Gleichungssystems Ax = b ).

Möglich sind auch die Anweisungen

E1 = A .* 2; E2 = 2 ./ A; E3 = A + 2; E4 = A - 2;

Gedanklich wird bei E3 bzw. E4 die reelle Zahl 2 zu einer Matrix, welche dieselbe Größe wie A hat, und deren Elemente alle den Wert 2 haben.

Beispiel: Für die Funktion

f ( x ) :=

x 1 + ax + rx^2

erstellen wir mit a = 1 , r = 0_._ 5 eine Wertetabelle. Anschließend wird diese Funktion gezeichnet. Die entsprechenden Matlab-Befehle lauten

a = 1; r = 0.5; x = 0:0.1:10; y = x./(1 + a.x +r.x.^2); plot(x,y); Als Ergebnis erhalten wir die folgende Grafik:

(^00 1 2 3 4 5 6 7 8 9 )

Das Matlab-Kommando plot zeichnet die Wertetabelle. Auf diesen Befehl gehen wir später noch ausführlich ein.

2.2.5 Funktionen mit Matrizen

Ist A eine bereits definierte Matrix, so liefert

size(A) bzw. [m,n] = size(A)

die Größe der Matrix; m enthält die Zeilenzahl und n die Spaltenzahl. Durch

B = zeros(size(A))

wird eine mit Nullen vorbelegte Matrix B erzeugt, die dieselbe Größe wie A hat.

E. Luik: Einführung in Matlab 35

Die Länge eines Vektor x erhält man durch den Befehl

length(x).

Für eine Matrix A liefert das Kommando

diag(A)

die Diagonale (als Spaltenvektor). Umgekehrt ergibt für einen Spaltenvektor v (mit n Komponenten) der Matlab-Befehl

B = diag(v)

eine Diagonalmatrix mit den Elementen von v in der Diagonalen. Weiter liefert

C = diag(v,1)

eine ( n + 1) × ( n + 1)-Matix C mit dem Vektor v in der ersten oberen Nebendiagonalen. Zum Beispiel erhalten wir durch

e = ones(4,1); S = diag(11:11:55) + diag(e,1) + diag(e,-1);

die Matrix (^) 

   

    

Durch

sum(A)

werden die Elemente in den Spalten aufsummiert (ergibt als Ergebnis einen Zeilenvektor), während

sum(A,2)

die Elemente zeilenweise addiert. Schließlich erhält man durch

B = A’

die zu A transponierte Matrix. Möglich sind auch

u = sum(diag(A)); (summiert die Diagonalelemente, ist die Spur von A ) z = sum(A(:,3); (summiert die Elemente der 3. Spalte) v = sum(sum(A)); (summiert über alle Elemente der Matrix A ) D = diag(diag(A)); (Diagonalmatrix)

Für einen Vektor x = ( x 1 ,... , xn ) kennt Matlab die Funktionen

norm(x) = norm(x,2)

( ‖ x ‖ 2 =

x^21 + · · · + x^2 n

)

norm(x,1) (‖ x ‖ 1 = | x 1 | + · · · + | xn |)

norm(x,inf) (‖ x ‖∞ = max{| xi | : i = 1 ,... , n })

[s,j] = max(x) ( = max{ xi : i = 1 ,... , n } )

[s,j] = min(x) ( = min{ xi : i = 1 ,... , n } )

Dann liefert s den maximalen (minimalen) Wert und j die zugehörige Komponente.

E. Luik: Einführung in Matlab 37

2.3 Ein- und Ausgabe

2.3.1 Einlesen aus einer Datei

Zum Einlesen von Größen aus einer Datei bietet Matlab mehrere Möglichkeiten. Diese sind von der Form der Eingabedatei abhängig: nur Zahlen (numerische Größen) oder Text und Zahlen gemischt (alphanumerische Größen).

Numerische Größen

Enthält die einzulesende Datei nur numerische Größen, und zwar in jeder Zeile die gleiche Anzahl von Zahlen (durch Leerzeichen getrennt), so steht uns der Matlab-Befehl

A = load(’ < name > ’)

zur Verfügung. Dabei ist dann A eine Matrix. Befinden sich zum Beispiel in der Datei daten1.ein die Zahlen

1.1 1.2 1.3 1.4 1. 2.1 2.2 2.3 2.4 2. 3.1 3.2 3.3 3.4 3. 4.1 4.2 4.3 4.4 4.

so liefert das Kommanodo

A = load(’daten1.ein’)

eine 4 × 5 - Matrix. Der load - Befehl liefert eine Fehlermeldung, falls in den Zeilen unterschiedlich viele Zahlen stehen.

Text und numerische Größen

Im Normalfall hat man eine Eingabedatei, die sowohl Text als auch Zahlen enthält. Häufig sind auch die einzelnen Zeilen unterschiedlich lang. Dann verwendet man zum Einlesen die Matlab-Kommandos fgetl (für reine Textzeilen) bzw. fscanf.

Dazu muss aber zuerst die Datei mittels

fid = fopen(’ < dateiname > ’)

zum Lesen angemeldet werden. Durch diesen Befehl wird die Variable fid (die natürlich frei wählbar ist) der entsprechenden Datei zugeordnet.

Das Kommando

zeile1 = fgetl(fid)

liest nun eine Text-Zeile aus der angemeldeten Datei ein und speichert sie in der Variablen zeile1. Numerische Größen werden mit dem Matlab-Befehl fscanf eingelesen. Er hat die Form (Syntax)

B = fscanf(fid, < format > , < größe > ).

So bewirkt zum Beispiel das Kommando

B = fscanf(fid,’%g’,[3,2]) ,

dass aus der Datei die nächsten 6 Zahlen eingelesen und in einer 3×2 - Matrix gespeichert werden. Dabei ist zu beachten, dass die Datei zeilenweise gelesen, die Matrix aber spaltenweise belegt wird.

Der Befehl

D = fscanf(fid,’%c’,[1,10])

liest die nächsten 10 Zeichen (characters) ein.

Nach dem Einlesen wird die Datei mit dem Befehl

fclose(fid)

wieder abgemeldet.

Beispiel: Die Datei ergebnisse.dat habe folgende Gestalt:

Messergebnisse Konzentration Geschwindigkeit 0.333 3. 0.167 3. 0.0833 3. 0.0416 2. 0.0208 2. 0.0104 1. 0.0052 0.

Das folgende Matlab-Programm liest diese Datei ein und erstellt dann eine Zeichnung. Dabei wird der Text für die Überschrift bzw. die Achsenbeschriftung verwendet.

fid = fopen(’ergebnisse.dat’); zeile1 = fgetl(fid); zeile2 = fgetl(fid); zeile3 = fgetl(fid); Z = fscanf(fid,’%g’,[2,7]); plot(Z(1,:),Z(2,:),’*’); title(zeile1); xlabel(zeile2); ylabel(zeile3); fclose(fid);

Als Ergebnis erhalten wir die folgende Grafik:

0.5 0 0.05 0.1 0.15 0.2 0.25 0.3 0.

1

2

3

4 Messergebnisse

Konzentration

Geschwindigkeit

Manchmal besteht der Wunsch, alle Werte aus einer Datei einzulesen, wobei jedoch die Anzahl der Daten nicht bekannt ist. Nehmen wir mal an, dass die Datei test.dat folgende Gestalt hat:

%d oder %i signed integer (ganze Zahl) %u unsigned integer (natürliche Zahl) %e Gleitpunktdarstellung, z.B 1.105171e+ %f Festkommadarstellung, z.B. 11. %g wählt automatisch die günstigste Darstellung %12.6f Festkommadarstellung mit insgesamt 12 Stellen, davon 6 Nachkommastellen %14.8e Gleitkommadarstellung mit insgesamt 14 Stellen, davon 8 Nachkommastellen %s String-Variable (Text) %c ein einzelnes Zeichen (character) \n neue Zeile

Außerdem kann die Formatangabe noch Text enthalten, der dann ebenfalls in die Datei geschrieben wird. Die Formatangabe wird in Hochkommata eingeschlossen.

Beispiel: Es wird eine Wertetabelle von der Exponentialfunktion erstellt und in der Datei wertetab.txt gespeichert.

clear all; x = 0:0.1:1; y = [x; exp(x)]; fid = fopen(’wertetab.txt’,’w’); fprintf(fid,’Exponentialfunktion\n\n’); fprintf(fid,’%5.2f %12.8f\n’,y); fclose(fid);

Danach hat die Datei wertetab.txt den folgenden Inhalt:

Exponentialfunktion

0.00 1. 0.10 1. 0.20 1. 0.30 1. 0.40 1. 0.50 1. 0.60 1. 0.70 2. 0.80 2. 0.90 2. 1.00 2.

Falls beim Aufruf von fid = fopen(’wertetab.txt’,’w’) die Datei wertetab.txt schon existiert, so wird deren Inhalt zunächst gelöscht. Möchte man die Ergebnisse an die bereits bestehende Datei wertetab.txt anhängen, so wird

fid = fopen(’wertetab.txt’,’a’);

verwendet.

2.3.3 Ausgabe auf dem Bildschirm

Falls man bei einem Matlab-Befehl das Semicolon weglässt, so erscheint das Ergebnis sofort auf dem Bildschirm. Mit Hilfe des format - Befehls lässt sich die Zahlendarstellug

E. Luik: Einführung in Matlab 41

ändern. Es gibt folgende Möglichkeiten:

format short Festkommadarstellung mit 5 Stellen format long Festkommadarstellung mit 15 Stellen format short e Gleitkommadarstellung mit 5 Stellen format long e Gleitkommadarstellung mit 15 format compact unterdrückt Leerzeilen

Zwei weitere Möglichkeiten bilden die Matlab-Kommandos disp und sprintf. Dabei entspricht sprintf dem in Abschnitt 2.3.2 behandelten Matlab-Befehl fprintf, das Ergebnis wird jedoch in eine String-Variable (Text-Variable) gespeichert. Mit dem disp

  • Befehl kann sowohl eine Variable als auch Text ausgegeben werden.

Beispiel:

A = [1 2 3 4; 4 5 6 7]; disp(’Eingegeben wurde die Matrix A =’); disp(A); text = sprintf(’ A(2,3) = %6.2f’,A(2,3)); disp(text);

Als Ergebnis erhalten wir auf dem Bildschirm die Ausgabe

Eingegeben wurde die Matrix A = 1 2 3 4 4 5 6 7

A(2,3) = 6.

2.3.4 Eingabe über den Bildschirm

Mit dem Befehl input können innerhalb eines Matlab-Programmes Daten über den Bild- schirm eingelesen werden. Er hat die Form

x = input(’Text’); , c = input(’Text’,’s’);.

Matlab gibt dann auf dem Bildschirm den Text aus und wartet auf die Eingabe. Im ersten Fall wird eine numerische Eingabe erwartet, welche in der Variablen x gespeichert wird; im zweiten Fall wird die Eingabe als String (Text) behandelt und in c abgelegt.

Beispiel: Es wird eine Wertetabelle von der logistischen Kurve

L ( t ) :=

a 1 + exp( bct )

erstellt, wobei die Parameter a, b, c über den Bildschirm eingelesen werden.

clear all disp(’ Es wird eine Wertetabelle der log. Kurve erstellt’); disp(’ Geben Sie die folgenden Parameter ein:’); a = input(’ a = ’); b = input(’ b = ’); c = input(’ c = ’);

E. Luik: Einführung in Matlab 43

Durch einen weiteren Parameter werden in der Zeichnung Linientyp, Farbe und Markie- rungstyp bestimmt.

Linientyp Für den Linientyp gibt es die folgenden Möglichkeiten:

  • durchgezogene Linie : gepunktete Linie -. Punkt-Strich-Linie -- gestrichelte Linie

Markierungstyp Weiter besteht die Möglichkeit, die Punkte der Wertetabelle zu markieren bzw. nur die Punkte zu zeichnen (ohne die Verbindungsstrecke). Matlab hat die folgenden Markie- rungstypen:

. Punkt o Kreis x Kreuz

  • Plus
  • Stern s Quadrat d Raute v Dreieck, Spitze nach unten ˆ Dreieck, Spitze nach oben < Dreieck, Spitze nach links

Dreieck, Spitze nach rechts p Pentagramm h Hexagramm

Farben Die Auswahl der Farbe erfolgt durch:

y gelb m magenta c cyan r rot g grün b blau w weiß k schwarz

Beispiel:

x = 0:0.25:10; y = sin(x); z = sin(x+0.5); plot(x,y,’rs-’); hold on; plot(x,z,’go’);

Bei der ersten Kurve werden die berechneten Punkte mit einem Quadrat markiert und aufeinander folgende Punkte durch eine Gerade verbunden. Bei der zweiten Kurve werden die Punkte nur durch einen grünen Kreis markiert.

Die Graphik wird in einem neuen Fenster dargestellt, in dem sie weiter bearbeitet werden kann, z.B. Hinzufügen von Text oder Pfeilen.

Desweiteren besteht die Möglichkeit, die Größe und die Farbe der Markierungen zu ändern sowie das Innere der Markierungszeichen durch eine Farbe auszufüllen. Ferner kann man die Dicke der Linien wählen. Dazu werden weitere Parameter in das plot- Kommando aufgenommen. Testen Sie mal das folgende Matlab-Programm:

x = 0:0.5:10; y = sin(x); plot(x,y,’rs--’,’MarkerEdgeColor’,’k’,’MarkerFaceColor’,’g’,... ’MarkerSize’,15,’LineWidth’,2)

Neben den oben definierten Standard-Farben kann jede beliebige Farbe definiert werden durch Angabe eine Vektors der Länge 3 mit Zahlen zwischen 0 und 1, welcher die Rot-, Grün- und Blau-Anteile (in dieser Reihenfolge) enthält; zum Beispiel

plot(x,y,’color’,[0.8,0.2,1.0]);

2.4.2 3D-Graphik

Matlab besitzt eine ausgezeichnete 3D-Graphik. Wir stellen hier nur einige Elemente vor.

Zeichnen einer Kurve im Raum

In der Mathematik ist eine Raumkurve in der Regel durch eine Parametrisierung gegeben:

( x ( t ) , y ( t ) , z ( t )) mit t ∈ [ a, b ].