Klawonn/Rheinbach 04/05 1 Matlab-Schnelleinführung 1 Variablen definieren x=1 % x=1.0 % x=1.0; % u=[ 1 0 0 ] % v=[ 0; 0; 1; ] % A=[ 2 0 0 ; 0 2 0; % A(1,2)=1 % % whos help whos x wird definiert als 1 und das Ergebnis wird angezeigt x wird definiert als 1 x wird definiert als 1; das Ergebnis wird nicht angezeigt v ist ein Zeilenvektor bzw. eine 1 x 3 - Matrix w ist ein Spaltenvektor bzw. eine 3 x 1 -Matrix 0 0 2 ] A ist eine 3x3-Matrix mit den Eintraegen a_11=2, a_12=0,... Eintrag in erster Zeile, zweiter Spalte von A auf 1 setzen % alle definierten Variablen anzeigen % Hilfe zum Befehl whos anzeigen str=’Hallo Welt!’% str als die Zeichenkette ’Hallo Welt’ definieren % (einfache Anfuehrungszeichen!) disp(str); disp(x); 2 % str anzeigen % Inhalt von Variable x anzeigen Operatoren w=A*v A’ v+v 2*v % % % % w ist das Ergebnis der Matrix-Vektor-Multiplikatoin A*v Transponierte von A Zwei Spaltenvektoren addieren und das Ergebnis angezeigen Multiplikation von v mit einem Skalar 2^3 A^2 % 2 hoch 3 % Matrix A hoch 2 size(A) A(4,4)=1 m=size(A,1) n=size(A,2) % % % % Groesse von A anzeigen Den Eintrag A(4,4) auf 1 setzen, die Matrix vergroessern m ist die Anzahl der Zeilen von A n ist die Anzahl der Spalten von A 3 VORDEFINIERTE MATRIZEN sqrt(v’*v) norm(v) % euklidische Norm von v % euklidische Norm von v inv(A) % eig(A) % det(A) % x=A\[ 1; 1; 1; 1; % % rank(A) % null(A) % 3 Inverse von A bilden Eigenwerte von A berechnen und als Spaltenvektor ausgeben Determinante von A berechnen ] entspricht x=inv(A)*[1;1;1;1], ist aber wesentlich schneller, da die Inverse nicht explizit berechnet wird Rang der Matrix A Kern der Matrix A Vordefinierte Matrizen zeros(3,4); eye(4); 4 2 % 3 x 4 Nullmatrix % 4 x 4 Einheitsmatrix Weitere nützliche Operatoren und Funktionen floor(27.2) ceil(27.2) round(27.2) % Ergibt die naechst kleinere ganze Zahl (27) % Ergibt die naechst groessere ganze Zahl (28) % Rundet 27.2 kaufmaennisch korrekt (27) s=num2str(x) t=[ ’x ist ’ s ] disp(t) % wandelt x in eine Zeichenkette um % die beiden Zeichenketten verketten % t ausgeben [1; 2; 3;] .* [2; 3; 4;] % Komponentenweise Multiplikation der Vektoren % Ergibt den Vektor [2; 6; 12] sin(2*pi) cos(2*pi) exp(2) % % % Exponentialfunktion clear i x=2+3*i x*x % Variable i loeschen, falls sie verwendet wurde % x ist die komplexe Zahl 2+3i % Rechnen mit komplexen Zahlen funktioniert wie erwartet 5 ZEICHNEN 3 1:5 1:.5:4 % Doppelpunkt-Operator: ergibt [1 2 3 4 5] % Doppelpunkt-Operator: ergibt [1 1.5 2 2.5 3 3.5 4] format long % Ausgabe auf 15 Stellen genau 5 Zeichnen x=[0:.1:2*pi]; y=sin(x); plot(x,y); plot(x,y,x,sin(x+1)); 6 Kontrollstrukturen für Programme for i=1:10 disp(i) end % for-Schleife: i laeuft von 1 bis einschliesslich 10 % i wird ausgegeben if i==1 % if-Abfrage: Wenn i gleich 1 ist, dann... disp(’i ist 1’); else % ansonsten.... disp(’i ist nicht 1); end % weitere Vergleichsoperatoren: % < > <= >= : kleiner, groesser, kleiner gleich, groesser gleich % == != : gleich, ungleich x=[ 1 3 7 11 ]; while norm(x) > 1 x=.5*x; end % x ist der Zeilenvektor... % While-Schleife: Solange die Norm von x groesser 1 ist, % wird x mit dem Skalar .5 multipliziert a=1; (a < 5.0) && (a > 1.0) (a < 5.0) || (a > 1.0) !(a > 1) % Und-Verknuepfung % Oder-Verknuepfung % Negation