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.
© Copyright 2024 ExpyDoc