m-Files - Fachhochschule Südwestfalen

Fachhochschule Südwestfalen
Wir geben Impulse
Kontrollstrukturen
und Schleifen
in
Octave
Einführung
Inhalt
• m-Files
• Script-Files
• Function-Files
• Ein- Ausgabe von Variablen oder Ergebnissen
• For-Schleife
• While-Schleife
• If-Abfragen
Dipl.-Ing. M. Birkhölzer
Folie 2 (07/2011)
m-Files
In Octave lassen sich wie in der Einführung beschrieben m-Files ausführen, welche zum
Beispiel mit Notepad++ erzeugt werden können und dann als MATrixLABoratory(*.m)-File
abgespeichert werden müssen.
• m-Files unterscheiden sich in Script-Files und Function-Files.
• Script-Files sind häufig umfangreichere Programmsequenzen, welche auf alle
vordefinierten Variablen (globale Variablen) Zugriff haben.
• Funktion-Files sind meist kürzere Programme, mit denen eignen Funktionen definiert
oder vorhandene MATLAB-Funktionen erweitert werden können. Die Variablen in
Function-Files sind lokale Variablen und die Übergabe erfolgt durch eine Parameterliste
im Funktionsaufruf
• In beiden Versionen lassen sich Kontrollstrukturen, Eingaben, Ausgaben und Schleifen
verwenden, welche nun näher beschrieben werden sollen.
Dipl.-Ing. M. Birkhölzer
Folie 3 (07/2011)
Erstellung von Script-Files
Script-File
Als erstes schauen wir uns noch einmal den Aufbau eines einfachen Skript-Files an.
• Die benötigten Variablen können aus dem globalen Speicher verwendet werden oder aber ihm File selbst definiert
werden. Sie stehen nach der Abarbeitung im Speicher zur Verfügung.
• Der Aufruf erfolgt durch den Namen, unter dem man das File abgespeichert hat.
Erstellung im Editor
Dipl.-Ing. M. Birkhölzer
Folie 4 (07/2011)
Ausführung bzw. Aufruf
Erstellung von Function-Files
Function-File
Bei den Function-Files sieht es ein wenig anders aus.
• Die benötigten Variablen müssen der Funktion übergeben werden. Natütlich können auch hier in der Funktion noch
Variablen deklariert werden.
• Die Funktion braucht Variablen als Rückgabewerte, in denen die Ergebnisse gespeichert werden. (siehe eckige
Klammern beim Aufruf).
• Die berechneten Daten sind nicht persistent, alle Zwischenergebnisse stehen nicht zur verfügung. Nur die
Rückgabewerte werden gespeichert.
Erstellung im Editor
Dipl.-Ing. M. Birkhölzer
Folie 5 (07/2011)
Ausführung bzw. Aufruf
Ein- und Ausgabe von Variablen oder Ergebnissen
In den m-Files kann auch mit Ein- und Ausgabe-Befehle gearbeitet werden
• Mit input können Werte in Script- oder Function-Files eingelesen werden.
• Mit disp und sprintf können Texte ausgegeben werde.
Zum Unterschied der Ausgabe ein kleines Scriptfile samt Ausgabe.
Ausgabe durch disp
Ausgabe durch sprintf
%g
sind die Platzhalter für die Variablen
\n
sorgt für den Zeilenvorschub
Dipl.-Ing. M. Birkhölzer
Folie 6 (07/2011)
Schleifen in m-Files
for-Schleife
Die for-Schleife wird für eine feste Anzahl von Durchläufen verwendet, welche vorher bekannt sein oder aber erst
ermittelt werden muss.
for k=a:b
…Anweisungen
end
k ist die Laufvariable, sie wird nach jedem Durchlauf um 1 erhöht
a ist der Anfangswert für k
b ist der Endwert, nachdem die Schleife verlassen werden soll
Im folgenden Beispiel berechnen wir den Strom bei unterschiedlichen Versorgungsspannungen durch 3 verschieden
Widerstände. Dazu verwenden wir zwei For-Schleifen.
In Zeile 1 findet sich nun der Strom für den 1.,
in Zeile 2 für den 2. und in Zeile 3 für den
3. Widerstand bei den unterschiedlichen
Spannungen
Dipl.-Ing. M. Birkhölzer
Folie 7 (07/2011)
Schleifen in m-Files
while-Schleife
Bei der while-Schleife wird die Eintrittsbedingung vor dem Schleifendurchlauf geprüft. Die Anweisung in der Schleife
werden ausgeführt, solange die Bedingung erfüllt ist. Hier muss dann aber ein Wert in- bzw. dekrementiert werden.
while a > b
Die Schleife wird so lange ausgeführt, wie a größer b ist.
while a < b
Die Schleife wird so lange ausgeführt, wie a kleiner b ist.
while a >= b
Die Schleife wird so lange ausgeführt, wie a größer gleich
while a >= b
Die Schleife wird so lange ausgeführt, wie a kleiner gleich b ist.
Als Beispiel wieder unsere Stromberechnung
diesmal nur mit einer while-Schleife.
Das Ergebnis ändert sich nicht!
Dipl.-Ing. M. Birkhölzer
Folie 8 (07/2011)
b ist.
Kontrollstrukturen in m-Files
If-Abfrage
If-elseif-else-Struktur
sie wird für bedingte Ausführungen in Anweisungen verwendet.
Die If-Abfrage ist in der einfachsten Form wie folgt aufgebaut:
if Bedingung
Anweisungen (z.B.: x=x+1)
endif (es reicht auch ein end)
Die Anweisung wird nur ausgeführt, wenn die Bedingung erfüllt wird.
Die Kontrollstruktur kann durch elseif und else erweitert werden:
if Bedingung1
Anweisungen 1
wird ausgeführt wenn Bedingung 1 erfüllt wird
elseif Bedingung2
Anweisung 2
wird ausgeführt wenn Bedingung 2 erfüllt wird
Anweisung 3
wird ausgeführt wenn Bedingung 1 und 2 nicht erfüllt werden
else
endif (es reicht auch ein end)
Dipl.-Ing. M. Birkhölzer
Folie 9 (07/2011)
Kontrollstrukturen in m-Files
If-Abfrage
Folgende Bedingungen können bei If- Abfragen verwendet werden:
1.) a < b 2.) a > b 3.) a == b 4.) a <= b 5.) a >= b
In dem folgenden Beispiel soll die Signumfunktion eines Vektors bestimmt werden.
Eine weitere Möglichkeit bietet der switch-Befehl. Wie dieser genau funktioniert können
Sie mit help
Dipl.-Ing. M. Birkhölzer
Folie 10 (07/2011)
switch in Erfahrung bringen.