Hauptinhalt

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     4

Wenn 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     3
3.*A
ans =

     3     6     9
     3     6     9

Diese 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     3
m = [2 4 6]
m =

     2     4     6
A - m
ans =

    -1    -3    -5
     0    -2    -4
     1    -1    -3

Die 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     3
y = [10; 15]
y =

    10
    15
x + y
ans =

    11    12    13
    16    17    18

Wenn 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     2
m = [2 4]
m =

     2     4
A - 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

A+B addiert A und B.

plus

+

Unäres Plus

+A gibt A zurück.

uplus

-

Subtraktion

A-B subtrahiert B von A.

minus

-

Unäres Minus

-A negiert die Elemente von A.

uminus

.*

Elementweise Multiplikation

A.*B ist das elementweise Produkt von A und B.

times

.^

Elementweise Potenz

A.^B ist die Matrix mit den Elementen A(i,j) zur Potenz B(i,j).

power
./

Rechtsdivision des Arrays

A./B ist die Matrix mit den Elementen A(i,j)/B(i,j).

rdivide

.\

Linksdivision des Arrays

A.\B ist die Matrix mit den Elementen B(i,j)/A(i,j).

ldivide

.'

Transponierte des Arrays

A.' ist die Transponierte des Arrays A. Für komplexe Matrizen erfolgt dabei keine Konjugation.

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:

C(i,j)=k=1nA(i,k)B(k,j).

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    20

Das vorherige Matrixprodukt ist nicht gleich dem folgenden elementweisen Produkt.

A.*B
ans =

     3     0
     2    20

Die 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

C = A*B ist das lineare algebraische Produkt der Matrizen A und B. Die Anzahl der Spalten von A muss gleich der Anzahl der Zeilen von B sein.

mtimes

\

Linksdivision der Matrix

x = A\B ist die Lösung für die Gleichung Ax = B. Die Matrizen A und B müssen dieselbe Anzahl von Zeilen aufweisen.

mldivide

/

Rechtsdivision der Matrix

x = B/A ist die Lösung für die Gleichung xA = B. Die Matrizen A und B müssen dieselbe Anzahl von Spalten aufweisen. Mit dem Operator für die Linksdivision ist dies entsprechend B/A = (A'\B')'.

mrdivide

^

Matrixpotenz

A^B ist A zur Potenz B, wenn B ein Skalar ist. Bei anderen Werten von B werden bei der Berechnung Eigenwerte und Eigenvektoren verwendet.

mpower

'

Komplexe Transponierte des Konjugats

A' ist die lineare algebraische Transponierte von A. Für komplexe Matrizen ist dies die komplexe Transponierte des Konjugats.

ctranspose

Siehe auch

Themen