Datenstrukturen 6. Thema: Arbeiten mit Feldern. Was sind Felder? Ein Feld ist eine Datenstruktur,...

14
Datenstrukturen 6. Thema: Arbeiten mit Feldern

Transcript of Datenstrukturen 6. Thema: Arbeiten mit Feldern. Was sind Felder? Ein Feld ist eine Datenstruktur,...

Page 1: Datenstrukturen 6. Thema: Arbeiten mit Feldern. Was sind Felder? Ein Feld ist eine Datenstruktur, deren Elemente alle von derselben skalaren Datenart.

Datenstrukturen

6. Thema:Arbeiten mit Feldern

Page 2: Datenstrukturen 6. Thema: Arbeiten mit Feldern. Was sind Felder? Ein Feld ist eine Datenstruktur, deren Elemente alle von derselben skalaren Datenart.

Was sind Felder?

• Ein Feld ist eine Datenstruktur, deren Elemente alle von derselben skalaren Datenart sind

• Elemente sind ein- oder mehrdimensional angeordnet

• Anordnung in einer Dimension wird durch einen Index beschrieben

Page 3: Datenstrukturen 6. Thema: Arbeiten mit Feldern. Was sind Felder? Ein Feld ist eine Datenstruktur, deren Elemente alle von derselben skalaren Datenart.

Eigenschaften von Feldern:

• gleichwertige Elemente• Länge einer Dimension ist unabhängig

vom Wert der Indices in den anderen Dimensionen (keine Lücken)

Page 4: Datenstrukturen 6. Thema: Arbeiten mit Feldern. Was sind Felder? Ein Feld ist eine Datenstruktur, deren Elemente alle von derselben skalaren Datenart.

Unterteilung:

Felder(arrays)

Matrizen Mehrdimensionale Felder

Skalare(1*1-Matrizen)

Vektoren(Zeilen- und Spaltenvektoren)

n*m-Matrizen

Page 5: Datenstrukturen 6. Thema: Arbeiten mit Feldern. Was sind Felder? Ein Feld ist eine Datenstruktur, deren Elemente alle von derselben skalaren Datenart.

Anlegen von Feldern (per Hand):

• MatrizenA = [a11 a12 a13; a21 a22 a23]

• Vektoren- Zeilenvektoren:

- b = [a11 a12 a13]- Spaltenvektoren

- d = [a11; a21; a31]

Page 6: Datenstrukturen 6. Thema: Arbeiten mit Feldern. Was sind Felder? Ein Feld ist eine Datenstruktur, deren Elemente alle von derselben skalaren Datenart.

Anlegen von Feldern (per Hand):

• mehrdimensionale FelderMatrix AMatrix B____________C(:, :, 1) = AC(:, :, 2) = B

Page 7: Datenstrukturen 6. Thema: Arbeiten mit Feldern. Was sind Felder? Ein Feld ist eine Datenstruktur, deren Elemente alle von derselben skalaren Datenart.

Besondere Funktionen zum Anlegen von Zeilenvektoren

• c = [Start: Schrittweite: Ende]• linspace

linspace(-2,+3,50)liefert einen Vektor mit 50 zwischen -

2 und +3 äquidistant verteilten Werten.• logspace

logspace(-2,+2,2000)liefert einen Vektor mit 2000 Werten, die auf einer logarithmisch skalierten Strecke zwischen 1.0e-2 und 1.0e+2 äquidistant verteilt sind.

Page 8: Datenstrukturen 6. Thema: Arbeiten mit Feldern. Was sind Felder? Ein Feld ist eine Datenstruktur, deren Elemente alle von derselben skalaren Datenart.

Besondere Funktionen zum Anlegen von Matrizen

• Magisches QuadratA = magic(Länge)

• EinheitsmatrizenB = eye(Länge (, Länge) )

• ones - liefert Felder beliebiger Gestalt, bei denen alle Elemente den Wert 1 haben.

• zeros - liefert Felder beliebiger Gestalt, bei denen alle Elemente den Wert 0 haben.

Page 9: Datenstrukturen 6. Thema: Arbeiten mit Feldern. Was sind Felder? Ein Feld ist eine Datenstruktur, deren Elemente alle von derselben skalaren Datenart.

Besondere Funktionen zum Anlegen von mehrdimensionalen Feldern

• Die Matlab-Funktion rand liefert Felder, deren Elemente gleichverteilte Zufallszahlen im Intervall(0,1) sind.

• rand(1,n) liefert einen Zeilenvektor der Länge n• rand(n,1) liefert eine Spaltenvektor der Länge n• rand(n) liefert eine quadratische n*n Matrix• rand(n,m) liefert eine n*m Matrix• rand(n,m,p) liefert ein n*m*p Feld

Page 10: Datenstrukturen 6. Thema: Arbeiten mit Feldern. Was sind Felder? Ein Feld ist eine Datenstruktur, deren Elemente alle von derselben skalaren Datenart.

Besondere Funktionen zum Anlegen von mehrdimensionalen Feldern

• randn liefert Felder beliebiger Gestalt, bei denen die Elementwerte normalverteilt mit Mittelwert 0 und Standardabweichung 1 sind.

Page 11: Datenstrukturen 6. Thema: Arbeiten mit Feldern. Was sind Felder? Ein Feld ist eine Datenstruktur, deren Elemente alle von derselben skalaren Datenart.

Zugriff auf Feldbereiche

• Vektoren- a(Index_D1)

• Matrizen und mehrdimensionale Felder- Elemente: B(Index_D1, Index_D2)- Bereiche: B(Index_D1, b23: b25)- Zeilen: B(Index_D1, :)- Spalten: B(:, Index_D2)

Page 12: Datenstrukturen 6. Thema: Arbeiten mit Feldern. Was sind Felder? Ein Feld ist eine Datenstruktur, deren Elemente alle von derselben skalaren Datenart.

Rechenoperation auf Felder• Matrizen transponieren: A‘• Matrizen mit Matrizen oder Vektoren multiplizieren

- B * C- D * e

• Komponentenweise Berechnung- t . * t

• Inverse einer Matrix: inv(A)• Rang rank(A)• Determinante det(A)• Summe (Differenz) A + B (A - B)• p-te Potenz A^p• Skalarprodukt zweier Vektoren x‘ * y• Äußeres Produkt zweier Vektoren x * y'• Multiplikation mit Skalar c c * x• Matrix-Vektor Produkt A * x• Eine Besonderheit in MATLAB stellt die Matrix-Division dar. Hierbei gilt:

• X=A\B ist Lösung der Gleichung A*X=B• X=B/A ist Lösung der Gleichung X*A=B

• Wenn bei der Matrix-Division anstelle der Matrix B ein Vektor b verwendet wird, so stell x=A\b• gerade die Lösung des linearen Gleichungssystems A*x=b dar; bei der Lösung wird der Gaußsche Algorithmus

verwendet.• Eigenwerte und Eigenvektoren einer Matrix A können folgendermaßen berechnet werden:

• Vektor x der Eigenwerte: x=eig(A)• Matrix X der Eigenvektoren, Diagonalmatrix D der Eigenwerte: [X,D]=eig(A)

Page 13: Datenstrukturen 6. Thema: Arbeiten mit Feldern. Was sind Felder? Ein Feld ist eine Datenstruktur, deren Elemente alle von derselben skalaren Datenart.

Rechenoperation auf Felder

• sum(Feld) – Addition aller Spalten• sum(Feld‘) – Addition aller Zeilen• sum(sum(Feld)) – Addition aller Feld

Feldelemente, is auch mit dem Platzhalter ‘:‘ kombinierbar

Page 14: Datenstrukturen 6. Thema: Arbeiten mit Feldern. Was sind Felder? Ein Feld ist eine Datenstruktur, deren Elemente alle von derselben skalaren Datenart.

Rechenoperation auf Felder• Cat – Mit Hilfe dieser Funktion kann man aus Feldern

solche mit höheren Dimension aufbauen.

• Bsp.: cat(3, 2.0, 2.2, 2.4)ans(:,:,1) =

2ans(:,:,2) =

2.2000ans(:,:,3) =

2.4000