zurück zur Hauptseite
zum Zentrum für Technomathematik der Universität Bremen

Befehle in Matlab

Diese Seite beinhaltet Grundlegende Befehle von Matlab.
Zusammengestellt für das Mathematische Praktikum 2001
Prof. Dr. Angelika Bunse-Gerstner, Barbara Lang

Ziel

Diese Seite stellt grundlegende Befehle von Matlab zusammen. Die Befehle werden nicht umfassend behandelt, sondern beispielhaft vorgestellt. Deshalb empfiehlt es sich, die informative Online-Hilfe vom Matlab parallel zu konsultieren. Eine ausführlichere Einführung zu Matlab kann man sich zum Beispiel an folgender Stelle vom Netz ziehen:  http://www-m3.ma.tum.de/m3/NLA/teaching/NumPra1/begleit.html

 


Allgemeine Bemerkungen

Starten von Matlab durch Eingabe von matlab in einem unix/linux-Terminal. Nach dem Erscheinen des Matlab-Prompt-Zeichen  ">>" können Matlabbefehle eingegeben werden. Beenden von Matlab durch die Eingabe von quit.

zum Titel
Eingabe von Skalaren, Vektoren und Matrizen
Befehl Resultat Funktionsweise
n=7 n=7 Variable (1x1-Matrix)  n wird erzeugt und mit 7 belegt
n=5; n=5 wie n=7, jedoch ohne Ausgabe
Zeilenvektoren
x=[1 2 3 4 5 6] x=(1 2 3 4 5 6) Zeilenvektor
x=[1,2,3,4,5,6] x=(1 2 3 4 5 6) Zeilenvektor, alternative Eingabe
t=1:10 t=(1 2 3 4 5 6 7 8 9 10) Zeilenvektor von 1 bis 10, Schrittweite 1
t=10:1 t=(10 9 8 7 6 5 4 3 2 1) Zeilenvektor von 10 bis 1, Schrittweite -1
t=1:0.5:4 t=(1 1.5 2 2.5 3 3.5 4) Zeilenvektor von 1 bis 4, Schrittweite 0.5
t=2:-.2:1 t=(2 1.8 1.6 1.4 1.2 1) Zeilenvektor von 2 bis 1, Schrittweite -0.2
x=linspace(3,4,11) x=(3 3.1 3.2 3.3 ... 3.8 3.9 4) Zeilenvektor  mit 11 äquidistanten Einträgen von einschliesslich 3 bis 4.
Spaltenvektoren
x=[1;2;3]       /1\
x=| 2 |
      \3/
Spaltenvektor
Matrizen
x=[1 2 ;3 4 ;5 6]      /1  2 \ 
x=| 3  4 | 
      \5  6/
Matrix
y=x' y=/1  3   5\
     \2  4   6/
Transposition
x(1,1)=9      / 2 \ 
x=| 3  4 | 
      \5  6/
Elementweiser Matrixzugriff
x(3,:) ans=(5 6) Zugriff auf 3.Matrixzeile
x(:,2) ans=(2 4 6)' Zugriff auf 2.Matrixspalte
x(2:3,1:2) ans=(3 4;5 6) Zugriff auf Untermatrizen
B=[x x]       / 1  2  1  2 \ 
x=|  3  4  3  4  | 
      \ 5  6  5  6 /
Zusammensetzen von Matrizen
nullmatrix=zeros(3,2)                       / 0  0 \
nullmatrix=| 0   0 |
                      \ 0  0 /
3x2 Nullmatix
eins=ones(3,2)                       / 1  1 \
nullmatrix=| 1   1 |
                      \ 1  1 /
3x2 Matrix, jedes Element =1
einheitsmatrix=eye(2) einheitsmatrix=(1 0;01) 2x2 Einheitsmatrix
rand(3) mal so, mal anders Erzeugen einer 3x3 Zufallsmatrix mit reellen Maschinenzahlen aus dem Intervall [0 1]
a='hallo' a=hallo 1x5 Matrix mit Zeichen als Elemente
zum Titel
Allgemeine Befehle und Hilfe

Es empfiehlt sich, die folgenden Topics  mal anzuschauen:

help help Hilfe zur Verwendung der Online-Hilfe
help Hilfethemen (topics) anzeigen
help topic (zum Beispiel help elmat) Hilfethema anzeigen 
(hier elmat: Elementare Matrizen und Matrixfunktionen)
help befehl (zum Beispiel help size) Befehlserläuterung
lookfor xyz Zeigt die Befehle an, die in der ersten Zeile ihres Hilfetextes xyz enthalten.
more on / more off Seitenweise Ausgabe ein- / ausschalten
who Anzeigen der schon definierten Variablen
clear / clear x alle oder einzelne Variablen löschen
flops(0) / flops flops(0) setzt den Rechenoperationszähler auf 0, flops gibt die Anzahl der Rechenoperationen seit Beginn der Sitzung bzw. seit flops(0) an.
format long /format short Umschalten des Ausgabeformats (nicht der Rechengenauigkeit)
diary on / diary off diary protokolliert eine Matlabsitzung. Das Protokoll wird in ein file namens diary abgelegt. Der Befehl diary on startet die Protokollierung und der Befehl diary off beendet diese. Die dann entstandene Datei diary kann in einem Editor betrachtet werden (zum Beispiel emacs).

 
zum Titel
Elementare Operationen
2+3 Addition
x+y Elementweise Addition von Matrizen (Dimensionen müssen übereinstimmen)
x*y Matrixmultiplikation
x' Transposition von Matrizen
x.*y Elementweise Multiplikation von Matrizen
3+x Addition von 3 zu jedem Matrixelements
x^2 Potenzierung der Matrix (x*x)
x^-1 Inversenbildung 
x=a\b Berechnet die Lösung von a*x=b, bei Skalaren normale Division
x=b/a Berechnet die Lösung von x*a=b, bei Skalaren normale Division
b./a Elementweise Division
max(a) Grösstes Element von a
size(a) Dimension von a
length(a) Länge eines Vektors a bzw. bei Matrizen max(size(a)) 
zum Titel
Ein- und Ausgabe
 
 
disp('hello world') Ausgabe des Strings auf dem Bildschirm
disp(x) Ausgabe des Inhalts der Variablen x auf dem Bildschirm
textvar=sprintf('Dies ist der Inhalt von x: %0.5g',x) Die Variable textvar wird mit einem Textstück (string) belegt. An die Stelle des Platzhalters %10.5g wird der Inhalt der Variable x gesetzt. Hierbei ist  10 die Anzahl der freigehaltenen Stellen, 5 die Anzahl der Nachkommastellen und g das Ausgabeformat.
n=input('Geben Sie bitte n ein: ') Eingabe von Zahlen mittels Tastatur
pause(n) Pause von n Sekunden
zum Titel
Bedingte Verzweigungen und Schleifen
 
Logische Vergleichsoperatoren: <  >  <=  >=  ==  ~=  kleiner / grösser / kleinergleich / grössergleich / gleich / ungleich
if c==3
  c=c+1;
end
Bedingte Anweisung:
Falls c=3 erhöhe c um 1.
if c==3
  c=c+1;
else
  c=c-1;
end
Bedingte Verzweigung:
Falls c=e erhöhe c um 1, sonst erniedrige c um 1.
if c==3
  c=c+1;
elseif c>0;
  c=c-1;
else
  c=100;
end
Bedingte Verzweigung:
Falls c=3 wird c um 1 erhöht, ansonsten wird folgendermassen vorgegangen: Falls c>0 wird c um 1 ernierdrigt, sonst auf 100 gesetzt.

Ergebis:
Falls c=3 -> c:=4
Falls 0<c und c ungleich 3 -> c:=c-1
Falls c<0 -> c:=100

for k=1:10
  l(k)=2*k;
end
For-Schleife
k läuft von 1 bis 10, der k. Eintrag von l wird auf das doppelte von k gesetzt. Ergebnis: k=10, l=[2 4 6 ....20]
n=4;
while n>1
  l(n)=2*n; 
  n=n-1;
end
While-Schleife
solange die Bedingung n>1 erfüllt ist, werden die Anweisungen ausgeführt: Zu Beginn ist n=4, das heisst l(4):=8, dann wird n um 1 erniedrigt, also n=3. n ist immer noch grosser als 1, das heisst l(3):=6, n:=2. Im letzten Druchlauf wird l(2)=4, n:=1 gesetzt.
Ergebnis: n=1, l=[0 4 6 8]
break break bricht Schleifen ab
zum Titel
Visualisierung
x=0:0.1:2*pi;
y=sin(x);
plot(x,y)
Plot der Sinuskurve von 0 bis pi
plot([0 1 4],[5 3 7]) Plot durch die Punkte (0,5),(1,3),(4,7)
x=0:0.1:2*pi;
y=sin(x);
plot(x,y)
hold on
plot(x,2*y,':r')
Mehrere Plots in einer figure (Fenster der graphischen Ausgabe): hold Schalter auf on stellen.
Durch Angabe von Parametern können verschiedene Farben und Strichtypen gewählt werden (siehe help plot).
close / close all Aktuelle figures schiessen / Alle 
figure / figure(3) Graphisches Fenster Nummer 3 öffnen oder anzeigen (falls es schon existiert. Ab jetzt beziehen sich alle graphischen Befehle auf dieses Fenster.
xlabel('x-Achse') Beschriftung der 1. Achse
ylabel('y-Achse') Beschriftung der 2. Achse
legend('Kurve 1', 'Kurve 2') Fügt Legende hinzu, pro gezeichnetem Element eine Stringkonstante.
axis([0 10 -2 2]) Grösse des angezeigten Ausschnitts: x-Werte zwischen 0 und 10, y-Werte zwischen -2 und 2.
z=peaks(25); 
surf(z) 
colormap(hsv)
3D-Graphiken erzeugen. Zunächst wird ein Datensatz erzeugt (vordefinierte Funktion peaks), dann mit surf dargestellt. Mit colormap werden die Farben definiert. 
title('Dies ist der Titel der Graphik') Titel der Graphik erstellen.
subplot(m,n,p) Verschiedene kleinere Plots in ein Fenster plazieeren. m x n-Matrix aus Teilgraphiken wird gebildet. p wählt die p. Gra]phik aus. Diese ist dann aktuell, alle graphischen Befehle beziehen sich dann darauf.
zum Titel
Funktionen
 
 
g=inline('t^2') Definition einer Inline-Funktion g(t)=t^2. Durch Eingabe von g(3) wird g an der Stelle 3 ausgewertet.
g=inline('x+2*y') Analog, mit 2 Parameter: g(x,y)=x+2*y
g=inline('x+2*y','y','x') Analog, nur mit expliziter Angabe der Reihenfolge der Parameter: g(x,y)=x+2*y
Funktionsdateien:
Bilden einer Funktion in einer Datei funkname.m:

function [ausg1, ausg2]=funkname(eing1, eing2)
%Beschreibung
Anweisungablock

Beispiel: 
Die Datei mit dem Namen rechteck.m enthält folgenden Inhalt:

function [inhalt,umfang]=rechteck(seite1,seite2)
% rechteck(seite1,seite2) berechnet 
% das Volumen und den Inhalt eines 
% Rechtecks mit den Seitenlängen 
% seite1 und seite2
faktor=2;
inhalt=seite1*seite2;
umfang=faktor*seite1=faktor*seite2;

Die Funktion kann nun von direkt im Matlabeingabefenster, von einer Skriptdatei oder einer anderen Funktionsdatei aufgerufen werden zum Beispiel mit dem Befehl 
[ergebnis1,ergebnis2]=rechteck(2,3);
Wird die Funktion von einer anderen Datei aus aufgerufen, so muss unsere Funktion an geeigneter Stelle abgespeichert sein, so dass Matlab sie findet: Zum Beispiel im gleichen Verzeichnis der aufrufenden Datei.

Beachte:

  • Die in dieser Datei definierten Variablen bleiben lokal (hier faktor), das heisst, sie stehen ausserhalb nicht zur Verfügung.
  • Der Name der Funktion (hier rechteck) und der Dateiname sollten übereinstimmen (hier rechteck.m). Die Dateinamenserweiterung ist für Funktionen immer .m. 

zum Titel