Informatik 1 MATLAB-Labor 1

Inf 1 – MATLAB-Labor-Einführung Informatik 1 – MATLAB-Labor 1 Aufgabe 1.1: Der Bildschirmarbeitsplatz Abb.: Bestandteile des Bildschirmarbeitsplatze...
Author: Marta Weber
6 downloads 0 Views 190KB Size
Inf 1 – MATLAB-Labor-Einführung

Informatik 1 – MATLAB-Labor 1 Aufgabe 1.1: Der Bildschirmarbeitsplatz

Abb.: Bestandteile des Bildschirmarbeitsplatzes Ihr Bildschirmarbeitsplatz im Labor besteht (im Uhrzeigersinn der Abbildung) aus • dem Bildschirm, der Tastatur, der Maus und • dem eigentlichen Rechner (im Tower-Gehäuse), mit dem Prozessor als rechnende Einheit, einem internen Datenspeicher (Arbeitsspeicher, RAM) als "Gedächtnis“, einer Festplatte (ein magnetischer Datenspeicher), einer USB-Schnittstelle, z.B. für einen USB-Memory-Stick, keinem CD- und einem Disketten-Laufwerk Ihr Rechner ist über ein Netzwerk (Kabel + Programme für den Datenaustausch, u.a. Samba) mit einem speziellen Rechner (im RZBT) verbunden, dem Server. Der Server hat verwaltet u.a., wer Rechner und Programme benutzen darf. Auch Programme, die man gemeinsam nutzen möchte, sind dort auf einer großen Festplatte gespeichert.

Abb.: Rechnernetz mit einzelnen Rechnern und einem Server

09.04.12

-1-

Stn - Rev. 3.1

Inf 1 – MATLAB-Labor-Einführung

Aufgabe 1.2: Ihre Arbeitsumgebung Wenn man mit dem Rechner arbeiten will, braucht man • einen Benutzernamen (User-Name, User-ID / ID = Identity) • ein Kennwort (Passwort) Zu Beginn einer Sitzung müssen Sie sich mit Benutzernamen und Kennwort anmelden (einloggen). Am Ende der Sitzung sollte man sich wieder abmelden (ausloggen).

1.2.1 An- und Abmelde-Prozedur Sie arbeiten unter einem Windows-Betriebssystem. Melden Sie sich bei Windows an mit: Benutzername: aaa123... [bzw. s

Wichtig:

Ihre Account-Nummer für ältere Accounts]

Kennwort:

HAW-Mailer-Passwort

Anmelden an:

DEP-MP (nicht an Rechnernamen dieses Computers)

Ihren Benutzernamen und das Passwort für den HAW-Mailer sollten Sie während der Orientierungs-Einheits-Woche im Rechenzentrum eingerichtet haben. Am Ende der Sitzung (nicht jetzt!) melden Sie sich ab. Klicken Sie hierzu auf das Symbol Start, das Sie links unten am Bildschirm finden und wählen Sie dann Beenden bzw. Abmelden aus (nicht Herunterfahren):

1.2.2 Arbeitsverzeichnis Auf den Festplatten des Servers steht Ihnen Speicherplatz zur Verfügung, in dem Sie Ihre Programme langfristig speichern können, und zwar in einem persönliches Verzeichnis (Heimatverzeichnis, Home Directory) auf Laufwerk H:\. Auf Laufwerk P:\ finden Sie außerdem den so genannten Public-Bereich, wo Dozenten allgemeine Daten ablegen. Der Home-Bereich auf dem Server (auf Laufwerk H:\) bleibt Ihnen das gesamte Studium erhalten. Der Übersicht wegen sollten Sie dort deshalb so genannte Ordner (Verzeichnisse, Directories) erstellen, in denen Sie die Dateien zu den einzelnen Veranstaltungen sammeln. Klicken Sie hierzu z.B. auf das Icon Arbeitsplatz und erzeugen Sie z.B. einen Ordner namens Informatik1, in dem Sie in Zukunft alle Ihre Programme zu Informatik 1 speichern - und dann für unsere erstes Labor auch gleich ein Unterverzeichnis Labor1: Die Labor-Rechner werden regelmäßig „geputzt“, d.h. Daten auf den lokalen Festplatten, z.B. unter "C:\", werden dabei gelöscht. Wenn Sie also Ihre Arbeit aufbewahren wollen, dann müssen Sie Ihre Daten in Ihrem Home-Verzeichnis H:\ auf dem Linux-Server ablegen. Arbeiten Sie später grundsätzlich in Ihrem persönlichen Verzeichnis !!! Sie können Ihre Daten aber auch auf einem USB-Stick abspeichern.

09.04.12

-2-

Stn - Rev. 3.1

Inf 1 – MATLAB-Labor-Einführung

Aufgabe 1.3: Erste Schritte mit MATLAB Lesen Sie den folgenden Aufgabentext sorgfältig durch und führen Sie die einzelnen Schritte aus. Beachten Sie alle Definitionen und versuchen Sie, diese zu verstehen.

1.3.1 Starten von MATLAB Zum Start von MATLAB klicken Sie auf das MATLAB-Icon auf dem Desktop bzw., falls es dort nicht vorhanden ist, gehen Sie links unten auf das Symbol Start und wählen dann unter Programme im Untermenü MATLAB, evtl. in einem weiteren Untermenü das Programm, z.B. MATLAB 2010a. Ein Klick startet die Programm-Umgebung von MATLAB. Mit dieser können Sie jetzt MATLAB-Programme ausführen, aber auch eigene Funktionen erzeugen.

Die Programm-Umgebung von MATLAB hat mehrere Fenster. Im mittleren Fenster, dem "Command Window" können Sie hinter dem Prompt ">>" MATLAB-Befehle eintippen.

1.3.2 MATLAB als Taschenrechner Versuchen Sie es im Command Window zu Beginn mit folgendem Befehl: >> 1+1

Nach dem Drücken der Eingabetaste antwortet MATLAB: ans = 2 >>

09.04.12

-3-

Stn - Rev. 3.1

Inf 1 – MATLAB-Labor-Einführung Versuchen Sie es im Command Window mit weiteren mathematischen Aufgaben, wie mit einem Taschenrechner. Verwenden Sie die mathematischen Symbole: +, -, * und /, z.B. >> (20+4*4) / 9

MATLAB bietet auch weitere gewohnte Funktionen, z.B. für die Quadratwurzel: >> sqrt(49) ans = 7

oder für das Quadrieren ^ bzw. für die trigonometrischen Funktionen sin() und cos(): >> sin(1)^2 + cos(1)^2 ans = 1

Hilfe zu einer Funktion erhalten Sie über die help-Funktion, z.B. >> help sin SIN

Sine. SIN(X) is the sine of the elements of X.

Der Befehl "help matlab\elfun" zeigt Ihnen die Liste der vorhandenen, elementaren mathematischen Funktionen. Der Befehl help, ohne weitere Spezifikation, gibt Ihnen die Liste aller vorhandenen help-Bereiche. Beispiele finden Sie über den Befehl "help demos". Versuchen Sie es auch einmal mit dem Befehl "doc sin“, wodurch die grafische Hilfe gestartet wird.

1.3.3 Zahlen- und Text-Darstellung MATLAB kennt folgende Zahlen-Darstellungen: • • •

ganze Dezimalzahlen, mit oder ohne Vorzeichen: 1 -2 +30 -400 Dezimalbruch mit Dezimalpunkt und mindestens einer Dezimalziffer vor und nach dem Punkt, mit oder ohne Vorzeichen: 1.5 -2.0 +.25 -425. 3.141592 dezimale Gleitkommazahlen, wobei Mantisse und Exponent mittels des Buchstabens e (entspricht einem "10-hoch") verknüpft sind: 1.0e+3 ist also 1.0*10 hoch 3 = 1000, weitere Beispiele: .1e-5 = 0.1*10-5, 5.e3 = 5*103, 2e3 = 2*103

Solche Zahlendarstellungen werden als Literale bezeichnet. Daneben gibt es noch Konstante, die über ihren Namen angesprochen werden, z.B. die Zahl pi = 3.14... Experimentieren Sie mit diesen Zahlen-Darstellungen und rechnen Sie damit! Beispielsweise: >> 1.5 * 2e2 ans = 300 >> pi * 1e-1 ans = 0.3142

Achtung: MATLAB, als amerikanisches System, verwendet an Stelle des Dezimal-Kommas den Dezimal-Punkt!

09.04.12

-4-

Stn - Rev. 3.1

Inf 1 – MATLAB-Labor-Einführung Texte werden in MATLAB zwischen zwei (einfache) Hoch-Kommata gesetzt, z.B. >> 'Das ist ein Text' ans = Das ist ein Text

Die Antwort ans des Systems können Sie unterdrücken, wenn Sie hinter die Anweisung ein Semi-Kolon setzen, z.B. >> 'Das ist ein Text';

1.3.4 Variablen und Datentypen Man kann in MATLAB, wie in anderen Programmiersprache auch, Variablen definieren - d.h. man legt im Computer einen Speicherplatz mit selbst gewähltem Namen (Variablen-Name) an. In diesen Speicherplatz kann man Daten schreiben (Wert-Zuweisung) und später auf diese Daten über den Namens wieder zugreifen. Namen beginnen in MATLAB immer mit einem Buchstaben. Dann können Ziffern und "_"-Zeichen folgen - jedoch kein Leerzeichen! Zwischen Groß- und Kleinschreibung wird unterschieden. Bis zur Länge von 31 Zeichen sind die Namen eindeutig. Variable werden in MATLAB erzeugt, indem man einen Namen wählt (z.B. x) und diesem Namen einen Datentyp und einen Wert zuweist, in der Form "Name = Datentyp( Wert )", z.B. dem Speicherplatz mit dem Variablen-Namen x den ganzzahligen Wert 5 : >> x = int32(5) x = 5

Typische Datentypen in MATLAB sind: • int32 : ganze (integer) Zahlen (Länge 4 Bytes = 32 bit) • double : reelle Zahlen (Länge 8 Bytes, doppelte Genauigkeit) • char : Text-Zeichen (character) Der Befehl "help datatypes" listet alle in MATLAB vorhandenen Datentypen auf. Den Datentyp einer speziellen Variablen kann man mit dem Befehl whos auslesen, z.B. >> whos x Name x

Size 1x1

Bytes 4

Class int32 array

x ist in unserem Fall also vom Typ int32, genauer gesagt ein 1x1-Feld (Array) vom Typ int32. MATLAB lässt auch zu, dass man den Datentyp nicht explizit angibt. In diesem Fall wählt MATLAB automatisch einen passenden Typ aus, z.B. für Zahlen den Typ double >> y = 6 y = 6 >> whos y Name y

Size 1x1

Bytes 8

Class double array

Vorsicht: Die Namen der Variablen und auch die der Literale sind in MATLAB nicht geschützt und können überdefiniert werden!

09.04.12

-5-

Stn - Rev. 3.1

Inf 1 – MATLAB-Labor-Einführung

Aufgabe 1.4: Funktionen / M-Files In dieser Aufgabe sollen die Schritte vom Schreiben des Funktionstextes bis zur lauffähigen MATLAB-Funktion geübt werden.

• • •

Schreiben (Editieren) des Funktionstextes Aktuelles MATLAB-Verzeichnis wählen Ausführen der Funktion

Um eine (wieder verwendbare) MATLAB-Funktion zu schreiben, muss man zuerst eine TextDatei erzeugen und diese in einem Verzeichnis der Festplatte speichern. Jeder beliebige ASCII-Editor ist zum Schreiben der Datei mit dem Funktionstext geeignet. Wir werden hierfür, in Abschnitt 1.4.1, den in MATLAB integrierten Editor verwenden.

1.4.1 Der interne MATLAB-Editor Rufen Sie in der MATLAB-Programmumgebung File -> New -> M-File auf. Es erscheint dann ein neuen Fenster, in das Sie den Funktionstext eintragen können.

Schreiben Sie folgende kurze MATLAB-Funktion in die Datei "Aufgabe1.m": % Meine erste MATLAB-Funktion (Kommentar) function r = Aufgabe1() r = 'Hello World';

Sie können (und sollten) Ihren Funktionstext mit Kommentaren versehen. Kommentare sind Textzeilen, die mit dem Zeichen "%" beginnen. Diese Zeilen werden von MATLAB bei der Ausführung nicht berücksichtigt, dienen deshalb nur zur Orientierung für den Programmierer. Mit dem Befehl File -> Save speichern Sie Ihren Text auf der Festplatte in eine Datei, also z.B. in Ihrem Verzeichnis "H:\Informatik1\Labor1\" als Datei mit dem Namen "Aufgabe1.m". Die Endung ".m" schlägt MATLAB automatisch vor. Nach dem Speichern müssen Sie den MATLAB-Editor aber nicht unbedingt schließen.

Jetzt geht es um das Ausführen Ihres ersten Programms. Nach dem Starten befindet sich MATLAB in seinem aktuellen Arbeitsverzeichnis. Mit dem Befehl pwd (Unix-Befehl print working directory) können Sie sich im "Command-Window" das aktuelle Verzeichnis anzeigen lassen: >> pwd ans = C:\MATLAB6p5\work

09.04.12

-6-

Stn - Rev. 3.1

Inf 1 – MATLAB-Labor-Einführung Da Sie Ihre MATLAB-Funktion hoffentlich in Ihrem Home-Directory gespeichert haben, müssen wir das aktuelle Verzeichnis wechseln. Das geht entweder über die Icons am oberen Ende des MATLAB-Fensters oder mit dem Befehl cd (change directory), z.B. >> cd H:/Informatik1/Labor1

Überprüfen Sie mit dem Befehl pwd, ob sich MATLAB im richtigen Verzeichnis befindet. >> pwd ans = H:Informatik1\Labor1

Zum Ausführen Ihrer MATLAB-Funktion müssen Sie jetzt nur den Namen der Datei (ohne die Endung ".m") im Command-Window eintippen, z.B. >> t = Aufgabe1;

Die Funktion "Aufgabe1" weist der Variablen t den Text "Hello World" zu. Wenn Sie anschließend t aufrufen, wird der Text angezeigt: >> t t = Hello World

1.4.2 Weitere Beispiele Erstellen Sie weitere Funktionen nach dem obigen Schema. Verwenden Sie für jede neue Funktion einen separaten M-File, der exakt den gleichen Namen hat wie Ihre Funktion. Achten Sie dabei auch an die korrekte Groß- und Kleinschreibung des Namens. 1. Erstellen Sie die Funktion "Aufgabe1a", die untereinander mehrere Zeilen Text ausgibt, indem Sie Anweisungen vom folgenden Typ erstellen: r1 = 'Hello World' r2 = 'how are You'

Testen Sie die Funktion in Matlab! 2. Verwenden Sie an Stelle der direkten Ausgabe durch r = … die Funktion fprintf, also z.B. die Anweisung fprintf('Hello World \n');. Als Zeilenvorschub dient das Zeichen \n. 3. Die Matlab-Funktion pause( n ) hält die Ausgabe um n Sekunden an. Die Funktion pause ohne Argument wartet bis zum nächsten Tastendruck. Schreiben Sie die Funktion Aufgabe1a so um, dass zwischen den einzelnen Ausgaben eine Pause entsteht. 4. Bauen Sie in Ihre Funktion auch den Aufruf der anderen Funktionen ein, die Sie bereits geschrieben haben, z.B. die Aufgabe mit einer Pause. 5. Schreiben Sie die Funktion Quadrat, abgespeichert im M-File Quadrat.m: function y = Quadrat( x ) y = x*x;

Testen Sie die Funktion im Command-Window, z.B. mit dem Aufruf: >> Quadrat( 3 )

09.04.12

-7-

Stn - Rev. 3.1

Inf 1 – MATLAB-Labor-Einführung

1.4.3 Graphik-Funktion als Abschluss-Beispiel Zum Abschluss des ersten MATLAB-Labors hier der Code einer etwas komplexeren MATLAB-Funktion – ohne weiteren erklärenden Kommentar. Auf die verwendeten Befehle kommen wir in späteren Vorlesungen zu sprechen. Schreiben Sie folgenden Funktions-Text in die Datei "Aufgabe2.m": % Aufgabe2: Surface Plot function Aufgabe2() [X,Y] = meshgrid(-8:.5:8); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; surf(X,Y,Z) colormap hsv colorbar

Rufen Sie die Funktion "Aufgabe2" anschließend im Command-Window auf: >> Aufgabe2

Es wird sich ein weiteres Fenster öffnen, in dem das Graphik-Beispiel angezeigt wird.

Erweiterungen: Experimentieren Sie bei der Graphik-Funktion an Stelle von Z = sin(R)./R; mit anderen ZWerten, z.B. Z = Y * sin(R)./R; etc. Verwenden Sie an Stelle von hsv eine andere colormap ???. Suchen Sie in der Matlab-Hilfe nach den colormap-Optionen.

09.04.12

-8-

Stn - Rev. 3.1