0% fanden dieses Dokument nützlich (0 Abstimmungen)
2 Ansichten40 Seiten

Einführung in Matlab: 13. April 2023

Das Dokument bietet eine Einführung in MATLAB, eine kommerzielle Software und Programmiersprache von MathWorks, die für numerische Berechnungen und Datenvisualisierung verwendet wird. Es beschreibt die Benutzeroberfläche, grundlegende Funktionen, Variablen, Vektoren, Matrizen, mathematische Funktionen sowie das Erstellen und Ausführen von Skripten und Funktionen. Zudem werden wichtige Programmierkonzepte wie Kommentare und logische Wahrheitsabfragen behandelt.

Hochgeladen von

Alejandro Figueroa
Copyright
© All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen
0% fanden dieses Dokument nützlich (0 Abstimmungen)
2 Ansichten40 Seiten

Einführung in Matlab: 13. April 2023

Das Dokument bietet eine Einführung in MATLAB, eine kommerzielle Software und Programmiersprache von MathWorks, die für numerische Berechnungen und Datenvisualisierung verwendet wird. Es beschreibt die Benutzeroberfläche, grundlegende Funktionen, Variablen, Vektoren, Matrizen, mathematische Funktionen sowie das Erstellen und Ausführen von Skripten und Funktionen. Zudem werden wichtige Programmierkonzepte wie Kommentare und logische Wahrheitsabfragen behandelt.

Hochgeladen von

Alejandro Figueroa
Copyright
© All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen

RUHR-UNIVERSITÄT BOCHUM

Einführung in Matlab
13. April 2023
Ruhr-Universität Bochum
Christian Döding
RUHR-UNIVERSITÄT BOCHUM

Was ist MATLAB?

Kommerzielle Software von MathWorks und gleichnamige


Programmiersprache
Steht für MATrix LABoratory
Software: Numerische Berechnung von Problemen und Darstellung
von Ergebnissen
Programmiersprache: prozedurale Skriptsprache, kann auch
objektorientierte Programmierung
Kann wie höherer Taschenrechner genutzt werden
Stellt viele numerische Algorithmen bereit

Christian Döding | Einführung in Matlab | 13. April 2023 2


RUHR-UNIVERSITÄT BOCHUM

Was ist MATLAB?

Kommerzielle Software von MathWorks und gleichnamige


Programmiersprache
Steht für MATrix LABoratory
Software: Numerische Berechnung von Problemen und Darstellung
von Ergebnissen
Programmiersprache: prozedurale Skriptsprache, kann auch
objektorientierte Programmierung
Kann wie höherer Taschenrechner genutzt werden
Stellt viele numerische Algorithmen bereit
Installation:
Erstellung eines Accounts
Download und Installation der Software
Infos: [Link]
services/software/matlab_simulink.html
Christian Döding | Einführung in Matlab | 13. April 2023 2
RUHR-UNIVERSITÄT BOCHUM

Oberfläche
1. Current Folder:
Aktuelles Verzeichnis.
Erstellen, Ausführen,
Öffnen, Löschen, ... von
Dateien und Ordnern
2. Command Window:
Textbasiertes Ein- und
Ausgabefenster.
Eingabe direkter Befehle
und Anweisungen
3. Workspace: Anzeige und Verwaltung der aktuell befindlichen
Variablen im Arbeitsspeicher.
4. Hilfe-Button: Ruft die Matlab Dokumentation auf.
5. New-Script Button: Wichtiger Button zum Erstellen neuer
Programme.
Christian Döding | Einführung in Matlab | 13. April 2023 3
RUHR-UNIVERSITÄT BOCHUM

Einfache Anweisungen und


Grundrechenarten
Im Command Window können direkte Anweisungen gegeben und mit
Enter bestätigt (ausgeführt) werden. Bspw. Rechenoperationen:
Addition +, Substraktion -, Multiplikation *, Division / und
Potenzbildung ˆ
% Beispiel Addition :
>> 1 + 3
ans =
4
% Beispiel Multiplikation :
>> 2.5*3
ans =
7.5000

ans (kurz für "answer") bezeichnet hier den Ausgabewert des letzten
Befehls.
Christian Döding | Einführung in Matlab | 13. April 2023 4
RUHR-UNIVERSITÄT BOCHUM

Einfache Anweisungen und


Grundrechenarten
Die Ausgabe (z.B. des Wertes von ans) kann durch ein ;
unterdrückt werden

% Beispiel Addition ohne Ausgabe :


>> 1 + 3;

Das Ergebnis wird aber in ans gespeichert und kann manuell


ausgeben werden. Hierfür die Variable ans aufrufen.

% Beispiel Addition ohne Ausgabe :


>> 1 + 3;
>> ans
ans =
4

Christian Döding | Einführung in Matlab | 13. April 2023 5


RUHR-UNIVERSITÄT BOCHUM

Variablen

Matlab kann Variablen deklarieren und ihnen einen Wert zuweisen durch
Variablenname=Wert:
% Variable deklarieren 1:
>> a = 1;
>> a
a =
1

; unterdrückt wieder die Ausgabe


Variablen können überschrieben werden
Es gibt Regeln für Variablennamen:
können aus Groß- und Kleinbuchstaben bestehen
maximal 63 Zeichen
müssen mit Buchstaben anfangen
Satzzeichen sind nicht erlaubt
...
Christian Döding | Einführung in Matlab | 13. April 2023 6
RUHR-UNIVERSITÄT BOCHUM

Variablen

Mit deklarierten Variablen können (Rechen-)Operationen durchgeführt


werden:
% Variable deklarieren 2:
>> a = 1;
>> b = 2;
>> c = a + b ;
>> c
c =
3

Variablen werden im Workspace angezeigt und gespeichert


Der Befehl who listet die aktuellen Variablen auf
Der Befehl clear löscht den Workspace
Der Befehl clear var1 löscht nur die Variable var1
Christian Döding | Einführung in Matlab | 13. April 2023 7
RUHR-UNIVERSITÄT BOCHUM

Vektoren

Matlab kann auch Variablen als Vektoren deklarieren


% Zeilenvektor (1 ,2 ,3) :
>> v = [1 , 2 , 3]
v =
1 2 3
% Spaltenvektor (1 ,2 ,3) :
>> v = [1; 2; 3]
v =
1
2
3

Vektoren werden in Matlab Arrays genannt (Datentyp).


, oder Leezeichen trennt die Einträge bei Zeilenvektoren
; trennt die Einträge bei Spaltenvektoren
Christian Döding | Einführung in Matlab | 13. April 2023 8
RUHR-UNIVERSITÄT BOCHUM

Rechnen mit Vektoren

Addieren
% Vektoraddition :
>> v = [1 , 2 , 3];
>> u = [4 , 5 , 6];
>> v + u
ans =
5 6 9
Multiplizieren (Matrixmultiplikation)
% Vektormultiplikation :
>> v = [1 , 2 , 3];
>> u = [4; 5; 6];
>> v * u
ans =
32
Christian Döding | Einführung in Matlab | 13. April 2023 9
RUHR-UNIVERSITÄT BOCHUM

Vektormanipulation
Es kann auf einzelne (oder mehrere) Einträge zugegriffen werden
% Auslesen des zweiten Vektoreintrags
>> v = [1 , 2 , 3];
>> v (2)
ans =
2
und diese geändert werden
% Aendern des zweiten Vektoreintrags
>> v = [1 , 2 , 3];
>> v (2) = 0
v =
1 0 3
Matlab fängt bei 1 an zu zählen im Gegensatz zu vielen anderen
Programmiersprachen.
Christian Döding | Einführung in Matlab | 13. April 2023 10
RUHR-UNIVERSITÄT BOCHUM

Vektormanipulation

v(i) i-ter Eintrag von v


v(i:j) Vektor mit Einträgen (vi , . . . , vj )
v(i:end) Vektor mit Einträgen vom Index i bis zum Ende
v’ Transposition
dot(u,v) Skalarprodukt von zwei Spaltenvektoren
m:n erzeugt einen Vektor (m, m + 1, . . . , n − 1, n)
m:j:n erzeugt einen Vektor (m, m + j, m + 2j, . . . , n)
min(v), max(v) minimaler/maximaler Eintrag von v
norm(v,p) p-Norm von v
length(v) Länge von v
sort(v) sortiere v
a*v Multiplikation von v mit Zahl a (kompenentenweise)
v.ˆ 2 Komponentenweise Quadrieren (Potenzieren analog)
u.*v komponentenweise Multiplizieren

Christian Döding | Einführung in Matlab | 13. April 2023 11


RUHR-UNIVERSITÄT BOCHUM

Matrizen

Matlab kann auch Variablen als Matrizen deklarieren...


% Beispiel Matrix Deklaration :
>> A = [1 , 2 , 3; 4 , 5 , 6; 7 , 8 , 9]
A =
1 2 3
4 5 6
7 8 9

Christian Döding | Einführung in Matlab | 13. April 2023 12


RUHR-UNIVERSITÄT BOCHUM

Matrizen

...und mit ihnen rechnen


% Beispiel Matrixmultiplikation :
>> A = [1 , 2 , 3; 4 , 5 , 6; 7 , 8 , 9];
>> B = [2 , 0 , 0; 0 , 2 , 0; 0 , 0 , 2];
>> A * B
ans =
2 4 6
8 10 12
14 16 18

, oder Leerzeichen trennt die Spalten


; trennt die Zeilen
Matrizen heißen in Matlab auch (n × m)-Arrays

Christian Döding | Einführung in Matlab | 13. April 2023 13


RUHR-UNIVERSITÄT BOCHUM

Matrizenoperationen

A(i,j) i, j-ter Eintrag von A


A(:,j) j-te Spalte der Matrix A
A(i,:) i-te Zeile der Matrix A
A(i:j,j:end) Untermatrix
A’ Transposition
zeros(m,n) erzeugt eine m × n Matrix mit Null Einträgen
ones(m,n) erzeugt eine m × n Matrix mit Einträgen=1
eye(n) Einheitsmatrix n × n
diag(v) erzeugt eine Matrix mit Vektor v als diagonale
size(A) Dimensionen/Größe der Matrix
inv(A) Inverse von A (sparsam benutzen, wir lernen Besseres!)
det(A) Determinante von A
rank(A) Rang von A
eig(A) Eigenwerte von A (wir lernen wie Matlab das macht)
exp(A) komponentenweise(!) Exponentialfunktion
Christian Döding | Einführung in Matlab | 13. April 2023 14
RUHR-UNIVERSITÄT BOCHUM

Matrizenoperationen

A*v Matrix-Vektor-Multiplikation
A*B Matrixmultiplikation
A+B (komponentenweise) Addition
A.*B komponentenweise Multiplikation
Aˆ 2 Quadrieren A2 = AA (Potenzieren analog)
A.ˆ 2 komponentenweise Quadrieren (Potenzieren analog)
norm(A,p) induzierte Matrixnorm bzgl. p-Norm
rand(m,n) m × n Zufallsmatrix (0, 1)-gleichverteilt
randn(m,n) m × n Zufallsmatrix N (0, 1)-normalverteilt
magic(n) n × n magische Matrix

Achtung: Alle Matrix- und Vektoroperationen sind natürlich nur möglich,


wenn die Dimensionen passen.

Christian Döding | Einführung in Matlab | 13. April 2023 15


RUHR-UNIVERSITÄT BOCHUM

Mathematische Funktionen

Matlab stellt die bekannten mathematischen Funktionen und Zahlen wie


π bereit:
% mathematische Funktionen :
>> a = cos ( pi )
a =
-1

exp Exponentialfunktion sqrt Wurzel


log Logarithmus abs Betrag
cos Kosinus cosh Kosinus-Hyp.
sin Sinus sinh Sinus-Hyp.
tan Tangens tanh Tangens-Hyp.
pi Kreiszahl π i,j,1i,1j imaginäre Einheit

Christian Döding | Einführung in Matlab | 13. April 2023 16


RUHR-UNIVERSITÄT BOCHUM

Funktionen (inline)

Man kann Funktionen wie beispielsweise f (x) = x2 auch selber


definieren (deklarieren).
Eine Möglichkeit dafür ist die inline Deklaration:
fname = @(var1,...,varn) fausdruck;
% Funktionen x ^2 deklarieren :
>> f = @( x ) x ^2;
>> y = f (2)
y =
4
% Funktionen x ^2+ y ^2 deklarieren :
>> g = @( x , y ) x ^2 + y ^2;
>> z = g (2 ,2)
z =
8

Christian Döding | Einführung in Matlab | 13. April 2023 17


RUHR-UNIVERSITÄT BOCHUM

Skripte und Programme

Damit Aufrufe nicht direkt in die Konsole getippt werden müssen,


automatisiert man (wiederkehrende) Abläufe mit Hilfe von
Programmen, genannt Skripte.
Skripte sind m-Files (Dateien mit Endung .m)
Zum Erstellen eines Skripts:
tippe edit skriptname im Command Window
verwende den "New-Skript" Button (siehe Seite "Was ist
MATLAB?")
lege direkt eine .m-Datei im Verzeichnis an
Zum Bearbeiten (editieren) von Skripten wird der Editor verwendet.
Zum Ausführen eines Skripts:
tippe skriptname im Command Window (ohne .m)
verwende den "Run" Button im Editor
Beim Ausführen eines Skripts führt Matlab Zeile für Zeile des Skripts
aus.
Christian Döding | Einführung in Matlab | 13. April 2023 18
RUHR-UNIVERSITÄT BOCHUM

Das erste Programm

Ein beliebtes Beispiel für ein einfaches Programm ist das "Hello
World"-Programm.
Das Programm soll im Command Window die Zeile "Hello World!"
ausgeben.
Erstelle ein Skript mit dem Namen helloworld.m und Inhalt

disp ( ' Hello World ! ')

die disp Funktion schreibt einfach die Zeile in das Command


Window.
Führe das Skript mit dem Befehl helloworld im Command Window
aus.

Christian Döding | Einführung in Matlab | 13. April 2023 19


RUHR-UNIVERSITÄT BOCHUM

Funktionen und Routinen

komplexere Funktionen können in sog. Routinen implementiert


werden.
diese werden in eigene Skrpit-Files/m-Files geschrieben.
können aus anderen Skripten aufgerufen werden
Achtung: hierfür muss die Funktion im selben Pfad wie das
aufrufende Skript sein.
Generelle Syntax:

function [ out1 ,.. , outN ] = fname ( in1 ,.. , inN )


Anweisungen
out1 = ...
...
outN = ...
end

Christian Döding | Einführung in Matlab | 13. April 2023 20


RUHR-UNIVERSITÄT BOCHUM

Funktionen und Routinen

Beispiel:
Erstelle Datei square.m:
function y = square ( x )
y = x ^2;
end

Rufe Funktion z.B. im Command Window auf:


>>> a = square (2)
a =
4
>>> b = square (3)
b =
9

Christian Döding | Einführung in Matlab | 13. April 2023 21


RUHR-UNIVERSITÄT BOCHUM

Kommentare

Kommentare sind Texte im Code (Skripte und Funktionen) die von


Matlab ignoriert werden
in Matlab werden diese mit dem % eingeleitet
alles nach dem % wird von Matlab ignoriert

a = 1; % Das ist ein Kommentar


% a = 2;
disp ( a )
1

Code (Skripte und Funktionen) ist grundsätzlich ausreichend zu


kommentieren
dies erleichtert anderen (Korrekteuren) den Code zu verstehen

Christian Döding | Einführung in Matlab | 13. April 2023 22


RUHR-UNIVERSITÄT BOCHUM

Boolean-Werte

In Programmen ist es oft erforderlich logische Wahrheitsabfragen


durchzufüren.
Bspw. ob eine Variable einen positiven oder negativen Wert hat.
für das Ergebnis werden sogenannte Boolsche Werte verwendet:
1 = "wahr"
0 = "falsch"
In Matlab heißt dieser Datentyp logical
Variablen vom Typ logical benötigen nur 1 Bit Arbeitsspeicher.

Christian Döding | Einführung in Matlab | 13. April 2023 23


RUHR-UNIVERSITÄT BOCHUM

Logische Operatoren

Für Wahrheitsabfragen werden logische Verknüpfungen/Operatoren


verwendet und geben als Ergebnis einen Boolschen Wert zurück:
== gleich
∼= ungleich
<, > kleiner, größer.
<=, >= kleinergleich, größergleich.
∼ nicht (negation)
&& und
|| oder

% Ist 1 groesser als 0?


>> 1 > 0
ans =
1 ( logical )

Christian Döding | Einführung in Matlab | 13. April 2023 24


RUHR-UNIVERSITÄT BOCHUM

if-Abfragen

Wann oder ob ein Programm etwas tun soll bzw. in welchen Fällen es
sich wie verhalten soll, kann über sog. if-Abfragen gesteuert werden:
if Bedingung1
Anweisung1
elseif Bedingung2
Anweisung2
...
else
Anweisung sonst
end

Bedingung1 wahr ⇒ Anweisung1 wird ausgeführt.


Bedingung2 wahr ⇒ Anweisung2 wird ausgeführt, usw.
keine Bedingung wahr ⇒ else-Anweisung wird ausgeführt (opt.).
pro if-Abfrage wird höchstens eine Anweisung ausgefürt.
Christian Döding | Einführung in Matlab | 13. April 2023 25
RUHR-UNIVERSITÄT BOCHUM

if-Abfragen

function out = check_positiv ( x )


if x > 0
disp ( ' Die Zahl ist positiv ')
elseif x == 0
disp ( ' Die Zahl ist gleich Null ')
else
disp ( ' Die Zahl ist negativ ')
end
end

>> check_positiv (1)


Die Zahl ist positiv
>> check_positiv ( -1)
Die Zahl ist negativ

Christian Döding | Einführung in Matlab | 13. April 2023 26


RUHR-UNIVERSITÄT BOCHUM

for-Schleifen

Schleifen sind Kontrollstrukturen, die eine Kette von Anweisungen so


lange wiederholen, bis ein Abbruchkriterium erfüllt ist.
dies ermöglicht es wiederkehrende Anweisungen zu automatisieren.
In Matlab gibt es sogenannte for-Schleifen:

for i = Array
Anweisung
end

für jedes Element i in dem Array wird die Anweisung ausgeführt


i ist der Schleifen-Index/Variable und nimmt die Werte aus dem
Array an

Christian Döding | Einführung in Matlab | 13. April 2023 27


RUHR-UNIVERSITÄT BOCHUM

for-Schleifen

Zum Beispiel:
>> for i = [1 3 5 7]
disp ( i )
end
1

Christian Döding | Einführung in Matlab | 13. April 2023 28


RUHR-UNIVERSITÄT BOCHUM

for-Schleifen

oder
>> for i = 1:5
disp ( i )
end
1

Christian Döding | Einführung in Matlab | 13. April 2023 29


RUHR-UNIVERSITÄT BOCHUM

while-Schleifen

Neben for-Schleifen gibt es while-Schleifen:


while Bedingung
Anweisung
end

solange die Bedingung wahr ist, wird die Anweisung immer wieder
wiederholt.
Achtung: es muss garantiert werden, dass die Bedingung irgendwann
nicht mehr erfüllt ist, sonst kann es zu Endlos-Schleifen kommen.
Nützlich: Tastenkombination Strg+c stoppt das Programm
(Abbruch von Endlos-Schleifen).
Durch das Schlüsselwort break kann die while-Schleife abgebrochen
werden.

Christian Döding | Einführung in Matlab | 13. April 2023 30


RUHR-UNIVERSITÄT BOCHUM

while-Schleifen

Zum Beispiel:
>> i = 1;
>> while i <= 5
disp ( i )
i = i + 1;
end
1

5
Christian Döding | Einführung in Matlab | 13. April 2023 31
RUHR-UNIVERSITÄT BOCHUM

Ausgabe fprintf

Bei vielen Programmen wünscht man sich eine Ausgabe des


Ergebnisses im Command Window.
bereits disp für Ausgaben im Command Window verwendet.
Alternative: fprintf(.)
mehr Möglichkeiten zur Formatierung. Bsp:

>> a = 123.456;
>> fprintf ( '4 Nachkommastellen : a = %.4 f \ n ' ,a )
4 Nachkommastellen : a = 123.4560
>> fprintf ( ' wiss . Zahl : a = %.6 e \ n ' ,a )
wiss . Zahl : a = 1.234560 e +02

⇒ mehr in der fprintf Doku von MathWorks.

Christian Döding | Einführung in Matlab | 13. April 2023 32


RUHR-UNIVERSITÄT BOCHUM

Plots

Matlab kann auch graphische Ausgaben (Plots) erzeugen


hierfür wird die Routine plot verwendet
Beispiel:

% Plotte die Funktion cos ( x ) auf dem Interval


[0 ,10]
>> x = 0:0.1:10
>> y = cos ( x ) ;
>> plot (x , y )

x und y sind hierbei Arrays der selben Länge


plot(x,y) öffnet ein neues Fenster und plottet dann die Werte in x
gegen die Werte in y
die Punkte werden per Default mit einer Linie verbunden
Christian Döding | Einführung in Matlab | 13. April 2023 33
RUHR-UNIVERSITÄT BOCHUM

Plots

Die Art und Farbe des Plots kann dabei nahezu beliebig geändert werden:
% Plotte die Funktion cos ( x ) auf dem Interval
[0 ,10] mit roter getrichelter Line
>> x = 0:0.1:5;
>> y = cos ( x ) ;
>> plot (x ,y , 'r - - ')

oder
% Plotte die Funktion cos ( x ) auf dem Interval
[0 ,10] nur mit blauen Sternpunkten
>> x = 0:0.1:5;
>> y = cos ( x ) ;
>> plot (x ,y , 'b * ')

Christian Döding | Einführung in Matlab | 13. April 2023 34


RUHR-UNIVERSITÄT BOCHUM

Plots

Es können auch mehrere Plots in einem Fenster erzeugt werden


hierfür verwendet man das Schlüsselwort hold on:

% Plotte die Funktionen cos ( x ) und sin ( x )


>> x = 0:0.1:5;
>> y = cos ( x ) ;
>> z = sin ( x ) ;
>> plot (x ,y , 'b ')
>> hold on
>> plot (x ,z , 'r ')

Christian Döding | Einführung in Matlab | 13. April 2023 35


RUHR-UNIVERSITÄT BOCHUM

Plots

Es können auch Titel, Achsenbeschriftungen, Achsenbereiche,


Legenden, Liniendicken und vieles mehr verändert werden.
Ein Beispielskript (Weiteres auf der plot Doku von MathWorks):
x = 0:0.1:5;
y = cos ( x ) ;
z = sin ( x ) ;
plot (x ,y , 'b ')
hold on
plot (x ,z , 'r ' , ' Linewidth ' , 2.0)
xlabel ( 'x ')
ylabel ( ' sin ( x ) , cos ( x ) ')
title ( ' Die Funktionen Sinus und Kosinus ')
legend ( ' cos ( x ) ' , ' sin ( x ) ')
ylim ([ -1.5 1.5])

Christian Döding | Einführung in Matlab | 13. April 2023 36


RUHR-UNIVERSITÄT BOCHUM

Nützliches

Noch ein paar hilfreiche Schlüsselwörter und Routinen:

help name Matlab Hilfe zur Routine name anzeigen


whos, clear Anzeigen und Löschen aller Variablen
clc, clf Lösche Commando bzw. Grafikfenster
save, load speichert oder lädt den Workspace
tic ... toc messen der CPU-Zeit
disp(x) Anzeigen (Command Window) der Variablen x
figure(k) Wahl des k-ten Grafikfensterns
subplot mehrere Plots in einem Fenster
strcat Zusammenfügen von Strings (Wörtern)

Christian Döding | Einführung in Matlab | 13. April 2023 37


RUHR-UNIVERSITÄT BOCHUM

Wenn man mal nicht weiter weiß...

Matlab Dokumentation von MathWorks:

[Link]

Einführung in Matlab von MathWorks unter

[Link]
[Link]

Weitere Literatur:

Christian Döding | Einführung in Matlab | 13. April 2023 38


Der Rest ist learning by doing!

Vielen Dank für eure Aufmerksamkeit.

Christian Döding | Einführung in Matlab | 13. April 2023 39

Das könnte Ihnen auch gefallen