HOWTO für Matlab

 

Hilfestellung zu den Übungen

FH-Hagenberg

Werner Backfrieder

 

Wie bekomme ich Hilfe in Matlab?

Gibt es Beispielprogramme?

Wie wird in Matlab eine Variable definiert?

Wie wird eine Variable gelöscht?

Welche Datentypen kennt Matlab?

Wie ist eine Schleife definiert?

Gibt es eine bedingte Schleife?

Wie ist eine bedingte Verzweigung definiert?

Wie sind Vergleichsoperatoren definiert?

Wie ist ein String definiert?

Wie lade ich ein Bild?

Wie greife ich auf die Koordinaten eines Bildes zu?

Kann ich Index-Bereiche definieren?

Wie werden Strings oder numerische Daten ausgegeben?

Wie werden Daten eingegeben?

Wie werden Funktionen graphisch dargestellt?

Wie werden Bilder dargestellt?

In welches Fenster wird gezeichnet?

Wie wird ein Fenster gelöscht?

Wie werden Skripts erstellt?

Aufruf eines Skripts?

Wie werden Kommentare verfasst?

Wie werden Funktionen geschrieben?

Können mehrere Funktionen in einem File enthalten sein?

Können Funktionen gemeinsam mit einem Skript in einem File gespeichert werden?

 

 

 

Wie bekomme ich Hilfe in Matlab?

 

Es gibt grundsätzlich drei Methoden:

 

zum Anfang

 

Gibt es Beispielprogramme?

 

Auf Komandozeilenebene demos eingeben.

zum Anfang

 

Wie wird in Matlab eine Variable definiert?

 

Matlab ist eine interpretierte Sprache und alloziert zur Laufzeit den Speicherplatz für Variablen, d.h. keine vorherige Definition ist notwendig!

Einfache Zuweisung:

 

a=12;

a=b;

a=a+1;

zum Anfang

 

Wie wird eine Variable gelöscht?

 

clear Variablenname

clear all

 

zum Anfang

 

Welche Datentypen kennt Matlab?

 

Der default Datentyp ist double. Speicherbedarf 8 Bytes.

Sonderflälle:

Bilder werden üblicherweise in unsigned 8 Bit geladen uint8, um Speicherplatz zu sparen.

Vorsicht: nicht alle Rechenoperationen sind auf diesen Datentyp definiert!

zum Anfang

 

Wie ist eine Schleife definiert?

 

a=0;

for i=1:0.5:10

            a=a+i;

end

 

zum Anfang

 

Gibt es eine bedingte Schleife?

 

Sie wird durch das Keyword while konstruiert.

 

a=0;

while a<10

            a=a+1;

end

 

Achtung: while kann nicht am Ende der Schleife stehen.

zum Anfang

 

Wie ist eine bedingte Verzweigung definiert?

 

a=3;

if a==3

      b=1;

else

      b=0;

end

 

zum Anfang

Wie sind Vergleichsoperatoren definiert?

 

==    gleich

~=    ungleich

>      größer

<      kleiner

<=, >=  kleiner und größer gleich

 

zum Anfang

 

Wie ist ein String definiert?

 

str='Das ist ein String';

 

Vorsicht: einfache Hochkoma verwenden!

zum Anfang

 

Wie lade ich ein Bild?

 

a=imread(Filename);

 

Filename .... String

zum Anfang

 

Wie greife ich auf die Koordinaten eines Bildes zu?

 

Ein Bild ist ein zweidimensionales array (Matrix). Die Variable A speichert eine Bildmatrix. Jeder Bildpunkt ist durch einen Zeilen- und Spaltenindex definiert. Die Referenzierung erfolgt durch den Variablennamen und die beiden Indizes in runden Klammern, getrennt durch Beistriche.

 

A(i,j)         Pixel in Zeile i und Spalte j.

 

Achtung: Matlab startet die Indizierung bei 1.

zum Anfang

 

Kann ich Index-Bereiche definieren?

 

Der Dopelpunktoperator  Startindex:Endindex  definiert einen Wertebereich einer Variablen.

Beispiel:

 

subMatrix=Matrix(23:42,1:15)

 

In diesem Beispiel werden in den Zeilen von 23 bis einschließlich 42 die Spalten von 1 bis 15 in das  2D array subMatrix zugewiesen.

zum Anfang

 

Wie werden Strings oder numerische Daten ausgegeben?

 

disp('das ist eine Stringausgabe')

fprintf('Das ist eine numerische ausgabe %4.2f',78.34)

 

zum Anfang

 

Wie werden Daten eingegeben?

 

Numerische Daten

 

n=input('enter a number: ');

 

Strings

 

str=input('enter your name: ','s');

 

zum Anfang

 

Wie werden Funktionen graphisch dargestellt?

 

Matlab ist eine numerisch orientierte Sprache. Die Funktionsdaten müssen in einem Datenvektor enthalten sein. Mit dem plot() Befehl werden die Daten dargestellt.

 

for i=1:500

       y(i)=sin(i/100)

end

plot(y)

 

zum Anfang

 

Wie werden Bilder dargestellt?

 

Ein Bild das in der Matrix img gespeichert ist wird mit dem Befehl imagesc() dargestellt.

 

imagesc(img)

 

Dabei werden die Matrizenelemente img(i,j) in Indices, die auf die Elemente einer Farbtabelle zeigen, umgerechnet. Die Skalierung auf die Farbeinträge erfolgt gleichförmig zwischen Minimum und Maximum des Bildes.

 

colormap()  installiert neue Farbtabelle

colorbar       zeigt einen Farbbalken an.

axis image   stellt korrektes Achsenverhältnis ein.

 

zum Anfang

 

In welches Fenster wird gezeichnet?

 

Die graphischen Ausgabebefehle, z.B. plot(), imagesc(), zeichnen immer in das augeblicklich aktive Fenster. Ist kein Fenster offen, wird ein neues Fenster erzeugt.

 

Mit dem Befehl figure können neue Fenster erzeugt, bzw. der Ausgabefocus auf andere Fenster gelegt werden.

zum Anfang

 

Wie wird ein Fenster gelöscht?

 

close(windowHandle)

close all

 

zum Anfang

 

Wie werden Skripts erstellt?

 

Matlab Programm im integrierten Editor (oder einem beliebigen Ascii-Editor) erstellen und unter deinem eindeutigen Namen, der nicht mit einer von Matlab verwendeten Funktion ident ist, mit der Extention '.m' speichern.

 

Alle Variablen eines m-Skripts sind global sichtbar.

 

Die ersten Zeilen sollten die Sequenz

 

clear all

close all

 

enthalten.

zum Anfang

 

Aufruf eines Skripts?

 

Auf der Komandozeile den Skriptnamen, ohne Extention, aufrufen. Ist das Skript im working directory oder im Pfad enthalten wird es ausgeführt.

zum Anfang

 

Wie werden Kommentare verfasst?

 

Kommentare sind durch ein Prozentzeichen % gekennzeichnet.

zum Anfang

 

Wie werden Funktionen geschrieben?

 

Eine Funktion ist durch die Sequenz

 

function  output=funcName(var1,var1,var3)

 

Auf diese Definition folgt der Anweisungsteil der Funktion. Alle folgenden Anweisungen werden ausgeführt. Der Rückgabewert wird durch eine Zuweisung an die Rückgabevariable definiert.

Der Variablenraum einer Funktion ist privat.

Die Funktion mit ihrem Namen in einem m-File gespeichert.

zum Anfang

 

Können mehrere Funktionen in einem File enthalten sein?

 

Ja, jedoch müssen es Unterfunktionen der Hauptfunktion, auf die der Filename hinweist, sein. Diese Funktionen sind nur für die Hauptfunktion sichtbar sein.

zum Anfang

 

Können Funktionen gemeinsam mit einem Skript in einem File gespeichert werden?

 

Nein

zum Anfang

 

Werner Backfrieder                                                                           April, 2007