Array- und Matrixoperationen
Einführung
MATLAB® enthält zwei verschiedene Typen arithmetischer Operationen: Array-Operationen und Matrixoperationen. Diese arithmetischen Operationen können Sie verwenden, um numerische Berechnungen durchzuführen, zum Beispiel das Addieren zweier Zahlen, das Erheben der Elemente eines Arrays in eine bestimmte Potenz oder das Multiplizieren zweier Matrizen.
Matrixoperationen gehorchen den Regeln der linearen Algebra. Array-Operationen werden dagegen Element für Element ausgeführt und unterstützen mehrdimensionale Arrays. Array-Operationen und Matrixoperationen unterscheiden sich voneinander durch den Punkt (.). Da jedoch die Matrix- und die Array-Operationen für Addition und Subtraktion identisch sind, sind die Zeichenpaare .+ und .- unnötig.
Array-Operationen
Array-Operationen werden Element für Element an entsprechenden Elementen von Vektoren, Matrizen und mehrdimensionalen Arrays ausgeführt. Wenn die Größe der Operanden identisch ist, dann wird jedes Element im ersten Operanden mit dem Element an derselben Position im zweiten Operand abgeglichen. Wenn die Größen der Operanden kompatibel sind, dann wird jede Eingabe implizit so erweitert, dass sie mit der Größe der anderen Eingabe übereinstimmt.
Als einfaches Beispiel können Sie zwei Vektoren derselben Größe addieren.
A = [1 1 1]
A =
1 1 1
B = [1 2 3]
B =
1 2 3
A+B
ans =
2 3 4Wenn der eine Operand ein Skalar ist und der andere nicht, dann erweitert MATLAB den Skalar implizit auf die Größe des anderen Operanden. Sie können zum Beispiel das elementweise Produkt eines Skalars und einer Matrix berechnen.
A = [1 2 3; 1 2 3]
A =
1 2 3
1 2 33.*A
ans =
3 6 9
3 6 9Diese implizite Expansion funktioniert auch dann, wenn Sie einen 1x3-Vektor von einer 3x3-Matrix subtrahieren, da die zwei Größen kompatibel sind. Wenn Sie die Subtraktion durchführen, wird der Vektor implizit zu einer 3x3-Matrix erweitert (expandiert).
A = [1 1 1; 2 2 2; 3 3 3]
A =
1 1 1
2 2 2
3 3 3m = [2 4 6]
m =
2 4 6A - m
ans =
-1 -3 -5
0 -2 -4
1 -1 -3Die Größen eines Zeilenvektors und eines Spaltenvektors sind kompatibel. Wenn Sie einen 1x3-Vektor zu einem 2x1-Vektor addieren, dann wird jeder Vektor implizit zu einer 2x3-Matrix erweitert, bevor MATLAB die elementweise Addition ausführt.
x = [1 2 3]
x =
1 2 3y = [10; 15]
y =
10
15x + y
ans =
11 12 13
16 17 18Wenn die Größen der zwei Operanden inkompatibel sind, dann wird eine Fehlermeldung ausgegeben.
A = [8 1 6; 3 5 7; 4 9 2]
A =
8 1 6
3 5 7
4 9 2m = [2 4]
m =
2 4A - m
Arrays have incompatible sizes for this operation.
Weitere Informationen finden Sie unter Kompatible Arraygrößen für Basisoperationen.
Die folgende Tabelle enthält eine Zusammenfassung arithmetischer Array-Operatoren in MATLAB. Wenn Sie Informationen zu einer bestimmten Funktion benötigen, dann klicken Sie auf den Link zur Funktionsreferenzseite in der letzten Spalte.
Operator | Zweck | Beschreibung | Referenzseite |
|---|---|---|---|
| Addition |
| plus |
| Unäres Plus |
| uplus |
| Subtraktion |
| minus |
| Unäres Minus |
| uminus |
| Elementweise Multiplikation |
| times |
| Elementweise Potenz |
| power |
./ | Rechtsdivision des Arrays |
| rdivide |
| Linksdivision des Arrays |
| ldivide |
| Transponierte des Arrays |
| transpose |
Matrixoperationen
Matrixoperationen gehorchen den Regeln der linearen Algebra und sind nicht mit mehrdimensionalen Arrays kompatibel. Die erforderliche Größe und Form der Eingaben relativ zueinander hängt von der Operation ab. Für nichtskalare Eingaben berechnen die Matrixoperatoren im Allgemeinen andere Antworten als die ihnen entsprechenden Array-Operatoren.
Wenn Sie zum Beispiel den Operator / für die Linksdivision der Matrix verwenden, um zwei Matrizen zu dividieren, dann müssen die Matrizen dieselbe Anzahl Spalten enthalten. Wenn Sie aber den Operator * für die Matrixmultiplikation verwenden, um zwei Matrizen zu multiplizieren, dann müssen die Matrizen eine allgemeine innere Dimension haben. Das heißt, die Anzahl der Spalten in der ersten Eingabe muss gleich der Anzahl der Zeilen in der zweiten Eingabe sein. Der Operator für die Matrixmultiplikation berechnet das Produkt zweier Matrizen mit der folgenden Formel:
Um dies zu sehen, können Sie das Produkt zweier Matrizen berechnen.
A = [1 3;2 4]
A =
1 3
2 4
B = [3 0;1 5]
B =
3 0
1 5
A*B
ans =
6 15
10 20Das vorherige Matrixprodukt ist nicht gleich dem folgenden elementweisen Produkt.
A.*B
ans =
3 0
2 20Die folgende Tabelle enthält eine Zusammenfassung arithmetischer Matrixoperatoren in MATLAB. Wenn Sie Informationen zu einer bestimmten Funktion benötigen, dann klicken Sie auf den Link zur Funktionsreferenzseite in der letzten Spalte.
Operator | Zweck | Beschreibung | Referenzseite |
|---|---|---|---|
| Matrixmultiplikation |
| mtimes |
| Linksdivision der Matrix |
| mldivide |
| Rechtsdivision der Matrix |
| mrdivide |
| Matrixpotenz |
| mpower |
| Komplexe Transponierte des Konjugats |
| ctranspose |