Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> MATLAB

MATLAB: Mehrdimensionale und spezielle Arrays meistern

In MATLAB sind alle Variablen aller Datentypen mehrdimensionale Arrays. Ein Vektor ist ein eindimensionales Array, eine Matrix ein zweidimensionales Array.

Vektoren und Matrizen wurden bereits besprochen. In diesem Kapitel geht es um mehrdimensionale Arrays. Zunächst werden jedoch einige spezielle Array-Typen vorgestellt.

Spezielle Arrays in MATLAB

In diesem Abschnitt werden Funktionen vorgestellt, die spezielle Arrays erzeugen. Bei allen diesen Funktionen erzeugt ein einzelnes Argument ein quadratisches Array, zwei Argumente ein rechteckiges Array.

Die Funktion zeros() erstellt ein Array, das nur Nullen enthält:

Beispiel:

Live Demo
 zeros(5) 

MATLAB führt die Anweisung aus und liefert folgendes Ergebnis:

 ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 

Die Funktion ones() erstellt ein Array, das nur Einsen enthält:

Beispiel:

Live Demo
 ones(4,3) 

MATLAB führt die Anweisung aus und liefert folgendes Ergebnis:

 ans = 1 1 1 1 1 1 1 1 1 1 1 1 

Die Funktion eye() erstellt eine Einheitsmatrix.

Beispiel:

Live Demo
 eye(4) 

MATLAB führt die Anweisung aus und liefert folgendes Ergebnis:

 ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 

Die Funktion rand() erstellt ein Array mit gleichverteilten Zufallszahlen im Intervall (0,1):

Beispiel:

Live Demo
 rand(3, 5) 

MATLAB führt die Anweisung aus und liefert folgendes Ergebnis:

 ans = 0.8147 0.9134 0.2785 0.9649 0.9572 0.9058 0.6324 0.5469 0.1576 0.4854 0.1270 0.0975 0.9575 0.9706 0.8003 

Magische Quadrate

Ein magisches Quadrat ist eine quadratische Matrix, bei der die Summe der Elemente in jeder Zeile, jeder Spalte und auf beiden Diagonalen gleich ist.

Die Funktion magic() erstellt ein magisches Quadrat. Sie erwartet ein einzelnes Argument, das die Größe des Quadrats angibt. Das Argument muss ein Skalar ≥ 3 sein.

Live Demo
 magic(4) 

MATLAB führt die Anweisung aus und liefert folgendes Ergebnis:

 ans = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 

Mehrdimensionale Arrays

Ein Array mit mehr als zwei Dimensionen wird in MATLAB als mehrdimensionales Array bezeichnet. Mehrdimensionale Arrays sind eine Erweiterung der normalen zweidimensionalen Matrix.

Um ein mehrdimensionales Array zu erzeugen, erstellt man zunächst ein zweidimensionales Array und erweitert es dann.

Beispiel: Zuerst wird ein zweidimensionales Array a erstellt.

Live Demo
 a = [7 9 5; 6 1 9; 4 3 2] 

MATLAB führt die Anweisung aus und liefert folgendes Ergebnis:

 a = 7 9 5 6 1 9 4 3 2 

Das Array a ist ein 3x3-Array. Wir können eine dritte Dimension hinzufügen, indem wir Werte wie folgt angeben:

Live Demo
 a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9] 

MATLAB führt die Anweisung aus und liefert folgendes Ergebnis:

 a = ans(:,:,1) = 0 0 0 0 0 0 0 0 0 ans(:,:,2) = 1 2 3 4 5 6 7 8 9 

Mehrdimensionale Arrays lassen sich auch mit den Funktionen ones(), zeros() oder rand() erstellen.

Beispiel:

Live Demo
 b = rand(4,3,2) 

MATLAB führt die Anweisung aus und liefert folgendes Ergebnis:

 b(:,:,1) = 0.0344 0.7952 0.6463 0.4387 0.1869 0.7094 0.3816 0.4898 0.7547 0.7655 0.4456 0.2760 b(:,:,2) = 0.6797 0.4984 0.2238 0.6551 0.9597 0.7513 0.1626 0.3404 0.2551 0.1190 0.5853 0.5060 

Auch die Funktion cat() kann zum Erstellen mehrdimensionaler Arrays verwendet werden. Sie verkettet eine Liste von Arrays entlang einer angegebenen Dimension:

Syntax der cat()-Funktion:

 B = cat(dim, A1, A2...) 

Dabei ist:

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:

Live Demo
 a = [9 8 7; 6 5 4; 3 2 1]; b = [1 2 3; 4 5 6; 7 8 9]; c = cat(3, a, b, [ 2 3 1; 4 7 8; 3 9 0]) 

Beim Ausführen der Datei wird folgendes angezeigt:

 c(:,:,1) = 9 8 7 6 5 4 3 2 1 c(:,:,2) = 1 2 3 4 5 6 7 8 9 c(:,:,3) = 2 3 1 4 7 8 3 9 0 

Array-Funktionen

MATLAB bietet folgende Funktionen zum Sortieren, Drehen, Permutieren, Umformen oder Verschieben von Array-Inhalten:

Funktion Zweck
length Länge eines Vektors oder größte Array-Dimension
ndims Anzahl der Array-Dimensionen
numel Anzahl der Array-Elemente
size Array-Dimensionen
iscolumn Prüft, ob Eingabe ein Spaltenvektor ist
isempty Prüft, ob Array leer ist
ismatrix Prüft, ob Eingabe eine Matrix ist
isrow Prüft, ob Eingabe ein Zeilenvektor ist
isscalar Prüft, ob Eingabe ein Skalar ist
isvector Prüft, ob Eingabe ein Vektor ist
blkdiag Erstellt Blockdiagonalmatrix aus Eingabeargumenten
circshift Verschiebt Array zirkulär
ctranspose Komplex-konjugiert transponieren
diag Diagonalmatrizen und Diagonalen einer Matrix
flipdim Spiegelt Array entlang angegebener Dimension
fliplr Spiegelt Matrix von links nach rechts
flipud Spiegelt Matrix von oben nach unten
ipermute Kehrt Permutation der Dimensionen eines N-D-Arrays um
permute Ändert Reihenfolge der Dimensionen eines N-D-Arrays
repmat Repliziert und kachelt Array
reshape Formt Array um
rot90 Dreht Matrix um 90 Grad
shiftdim Verschiebt Dimensionen
issorted Prüft, ob Elemente sortiert sind
sort Sortiert Array-Elemente aufsteigend oder absteigend
sortrows Sortiert Zeilen aufsteigend
squeeze Entfernt Singleton-Dimensionen
transpose Transponiert
vectorize Vektorisieren eines Ausdrucks

Beispiele

Die folgenden Beispiele veranschaulichen einige der oben genannten Funktionen.

Länge, Dimension und Anzahl der Elemente:

Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:

Live Demo
 x = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9]; length(x) % Länge des Vektors x y = rand(3, 4, 5, 2); ndims(y) % Anzahl der Dimensionen im Array y s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab']; numel(s) % Anzahl der Elemente in s 

Beim Ausführen der Datei wird folgendes Ergebnis angezeigt:

 ans = 8 ans = 4 ans = 23 

Zirkuläres Verschieben von Array-Elementen:

Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:

Live Demo
 a = [1 2 3; 4 5 6; 7 8 9] % das ursprüngliche Array a b = circshift(a,1) % zirkuläres Verschieben der ersten Dimension um 1 nach unten c = circshift(a,[1 -1]) % zirkuläres Verschieben der ersten Dimension um 1 nach unten % und der zweiten Dimension um 1 nach links 

Beim Ausführen der Datei wird folgendes Ergebnis angezeigt:

 a = 1 2 3 4 5 6 7 8 9 b = 7 8 9 1 2 3 4 5 6 c = 8 9 7 2 3 1 5 6 4 

Arrays sortieren

Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:

Live Demo
 v = [ 23 45 12 9 5 0 19 17] % horizontaler Vektor sort(v) % Sortieren von v m = [2 6 4; 5 3 9; 2 0 1] % zweidimensionales Array sort(m, 1) % Sortieren von m entlang der Zeilen sort(m, 2) % Sortieren von m entlang der Spalten 

Beim Ausführen der Datei wird folgendes Ergebnis angezeigt:

 v = 23 45 12 9 5 0 19 17 ans = 0 5 9 12 17 19 23 45 m = 2 6 4 5 3 9 2 0 1 ans = 2 0 1 2 3 4 5 6 9 ans = 2 4 6 3 5 9 0 1 2 

Zell-Arrays

Zell-Arrays sind Arrays von indizierten Zellen, wobei jede Zelle ein Array unterschiedlicher Dimensionen und Datentypen speichern kann.

Die Funktion cell wird zum Erstellen eines Zell-Arrays verwendet. Syntax der cell-Funktion:

 C = cell(dim) C = cell(dim1,...,dimN) D = cell(obj) 

Wobei:

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:

Live Demo
 c = cell(2, 5); c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5} 

Beim Ausführen der Datei wird folgendes Ergebnis angezeigt:

 c = { [1,1] = Red [2,1] = 1 [1,2] = Blue [2,2] = 2 [1,3] = Green [2,3] = 3 [1,4] = Yellow [2,4] = 4 [1,5] = White [2,5] = 5 } 

Zugriff auf Daten in Zell-Arrays

Es gibt zwei Möglichkeiten, auf Elemente eines Zell-Arrays zuzugreifen:

Wenn Sie die Indizes in runde Klammern einschließen, beziehen Sie sich auf die Menge der Zellen.

Zell-Array-Indizes in runden Klammern beziehen sich auf Zellmengen.

Beispiel:

Live Demo
 c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}; c(1:2,1:2) 

MATLAB führt die Anweisung aus und liefert folgendes Ergebnis:

 ans = { [1,1] = Red [2,1] = 1 [1,2] = Blue [2,2] = 2 } 

Sie können auch auf den Inhalt von Zellen zugreifen, indem Sie mit geschweiften Klammern indizieren.

Beispiel:

Live Demo
 c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}; c{1, 2:4} 

MATLAB führt die Anweisung aus und liefert folgendes Ergebnis:

 ans = Blue ans = Green ans = Yellow 

MATLAB

  1. C# Arrays meistern: Deklaration, Initialisierung und Operationen
  2. C# Jagged Arrays meistern: Deklaration, Initialisierung und Zugriff
  3. Java Array-Kopiertechniken: Umfassender Leitfaden
  4. C++ Arrays verstehen: Deklaration, Initialisierung und Pointer‑Techniken
  5. C++ Dynamische Array‑Allokation: Praktischer Leitfaden mit Code‑Beispielen
  6. MATLAB: Umfassender Überblick über die führende numerische Computing-Umgebung
  7. Variablen in MATLAB verstehen: Grundlagen & Beispiele
  8. Wichtige MATLAB-Befehle für effizientes Computing
  9. MATLAB Matrizen Grundlagen: Erstellen, Referenzieren, Manipulieren
  10. MATLAB – Zahlen: Typen, Speicherung und Konvertierung