MATLAB - Arrays
Alle Variablen aller Datentypen in MATLAB sind mehrdimensionale Arrays. Ein Vektor ist ein eindimensionales Array und eine Matrix ist ein zweidimensionales Array.
Wir haben bereits Vektoren und Matrizen besprochen. In diesem Kapitel werden wir mehrdimensionale Arrays besprechen. Lassen Sie uns jedoch zuvor einige spezielle Arten von Arrays besprechen.
Spezielle Arrays in MATLAB
In diesem Abschnitt werden wir einige Funktionen besprechen, die einige spezielle Arrays erstellen. Für alle diese Funktionen erstellt ein einzelnes Argument ein quadratisches Array, doppelte Argumente erstellen ein rechteckiges Array.
Die Nullen() Funktion erstellt ein Array aus lauter Nullen −
Zum Beispiel −
Live-Demozeros(5)
MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −
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 Einen() Funktion erstellt ein Array aus lauter Einsen −
Zum Beispiel −
Live-Demoones(4,3)
MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −
ans = 1 1 1 1 1 1 1 1 1 1 1 1
Das Auge() Funktion erstellt eine Identitätsmatrix.
Zum Beispiel −
Live-Demoeye(4)
MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −
ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
Der rand() Die Funktion erstellt ein Array von gleichmäßig verteilten Zufallszahlen auf (0,1) −
Zum Beispiel −
Live-Demorand(3, 5)
MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −
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
Ein magisches Quadrat
Ein magisches Quadrat ist ein Quadrat, das dieselbe Summe ergibt, wenn seine Elemente zeilenweise, spaltenweise oder diagonal addiert werden.
Die Magie() Funktion erstellt ein magisches quadratisches Array. Es braucht ein singuläres Argument, das die Größe des Quadrats angibt. Das Argument muss ein Skalar größer oder gleich 3 sein.
Live-Demomagic(4)
MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −
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 in MATLAB sind eine Erweiterung der normalen zweidimensionalen Matrix.
Um ein mehrdimensionales Array zu generieren, erstellen wir im Allgemeinen zuerst ein zweidimensionales Array und erweitern es.
Lassen Sie uns zum Beispiel ein zweidimensionales Array a.
erstellen Live-Demoa = [7 9 5; 6 1 9; 4 3 2]
MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −
a = 7 9 5 6 1 9 4 3 2
Das Array a ist ein 3-mal-3-Array; wir können a eine dritte Dimension hinzufügen , indem Sie Werte wie −
angeben Live-Demoa(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]
MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −
a = ans(:,:,1) = 0 0 0 0 0 0 0 0 0 ans(:,:,2) = 1 2 3 4 5 6 7 8 9
Wir können auch mehrdimensionale Arrays mit den Funktionen ones(), zeros() oder rand() erstellen.
Zum Beispiel
Live-Demob = rand(4,3,2)
MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −
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
Wir können auch cat() verwenden Funktion zum Erstellen mehrdimensionaler Arrays. Es verkettet eine Liste von Arrays entlang einer bestimmten Dimension −
Die Syntax für die cat()-Funktion ist −
B = cat(dim, A1, A2...)
Wo,
-
B ist das neu erstellte Array
-
A1 , A2 , ... sind die zu verkettenden Arrays
-
schwach ist die Dimension, entlang der die Arrays verkettet werden sollen
Beispiel
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein −
Live-Demoa = [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])
Wenn Sie die Datei ausführen, wird −
angezeigtc(:,:,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 die folgenden Funktionen zum Sortieren, Drehen, Permutieren, Umformen oder Verschieben von Array-Inhalten.
Funktion | Zweck |
---|---|
Länge | Länge des Vektors oder größte Array-Dimension |
ndims | Anzahl der Array-Dimensionen |
Zahl | Anzahl der Array-Elemente |
Größe | Array-Dimensionen |
iscolumn | Legt fest, ob die Eingabe ein Spaltenvektor ist |
ist leer | Ermittelt, ob das Array leer ist |
ismatrix | Legt fest, ob die Eingabe eine Matrix ist |
isrow | Legt fest, ob die Eingabe ein Zeilenvektor ist |
isskalar | Legt fest, ob die Eingabe skalar ist |
istVektor | Legt fest, ob die Eingabe ein Vektor ist |
blkdiag | Konstruiert eine blockdiagonale Matrix aus Eingabeargumenten |
Kreisverschiebung | Verschiebt das Array kreisförmig |
ctranspose | Komplexe konjugierte Transponierung |
diag | Diagonalmatrizen und Diagonalen der Matrix |
flipdim | Kippt das Array entlang der angegebenen Dimension |
fliplr | Kippt die Matrix von links nach rechts |
Flipud | Kippt die Matrix von oben nach unten |
ipermute | Kehrt permutierte Dimensionen des N-D-Arrays um |
permutieren | Ordnet die Dimensionen des N-D-Arrays neu an |
repmat | Replikate und Tile-Array |
umformen | Formt das Array um |
rot90 | Dreht die Matrix um 90 Grad |
shiftdim | Dimensionen verschieben |
sortiert | Ermittelt, ob Set-Elemente in sortierter Reihenfolge sind |
sortieren | Sortiert Array-Elemente in aufsteigender oder absteigender Reihenfolge |
Sortierreihen | Sortiert Zeilen in aufsteigender Reihenfolge |
drücken | Entfernt Singleton-Dimensionen |
transponieren | Transponieren |
vektorisieren | Vektorisiert den Ausdruck |
Beispiele
Die folgenden Beispiele veranschaulichen einige der oben genannten Funktionen.
Länge, Dimension und Anzahl der Elemente −
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein −
Live-Demox = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9]; length(x) % length of x vector y = rand(3, 4, 5, 2); ndims(y) % no of dimensions in array y s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab']; numel(s) % no of elements in s
Wenn Sie die Datei ausführen, zeigt sie das folgende Ergebnis an −
ans = 8 ans = 4 ans = 23
Zirkuläres Verschieben der Array-Elemente −
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein −
Live-Demoa = [1 2 3; 4 5 6; 7 8 9] % the original array a b = circshift(a,1) % circular shift first dimension values down by 1. c = circshift(a,[1 -1]) % circular shift first dimension values % down by 1 % and second dimension values to the left % by 1.
Wenn Sie die Datei ausführen, zeigt sie das folgende Ergebnis an −
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 den folgenden Code ein −
Live-Demov = [ 23 45 12 9 5 0 19 17] % horizontal vector sort(v) % sorting v m = [2 6 4; 5 3 9; 2 0 1] % two dimensional array sort(m, 1) % sorting m along the row sort(m, 2) % sorting m along the column
Wenn Sie die Datei ausführen, zeigt sie das folgende Ergebnis an −
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
Zellenarray
Zell-Arrays sind Arrays von indizierten Zellen, wobei jede Zelle ein Array mit unterschiedlichen Dimensionen und Datentypen speichern kann.
Die Zelle Die Funktion wird zum Erstellen eines Zellenarrays verwendet. Syntax für die Zellenfunktion ist −
C = cell(dim) C = cell(dim1,...,dimN) D = cell(obj)
Wo,
-
C ist das Zellenarray;
-
schwach ist eine skalare ganze Zahl oder ein Vektor von ganzen Zahlen, der die Dimensionen des Zellenarrays C angibt;
-
dim1, ... , dimN sind skalare ganze Zahlen, die die Dimensionen von C spezifizieren;
-
Objekt ist eine der folgenden −
- Java-Array oder -Objekt
- .NET-Array vom Typ System.String oder System.Object
Beispiel
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein −
Live-Democ = cell(2, 5); c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}
Wenn Sie die Datei ausführen, zeigt sie das folgende Ergebnis an −
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 Zellarrays
Es gibt zwei Möglichkeiten, auf die Elemente eines Zellenarrays zu verweisen −
- Einschließen der Indizes in die erste Klammer (), um auf Gruppen von Zellen zu verweisen
- Einschließen der Indizes in geschweiften Klammern {}, um auf die Daten in einzelnen Zellen zu verweisen
Wenn Sie die Indizes in die erste Klammer einschließen, bezieht sich dies auf den Satz von Zellen.
Zellen-Array-Indizes in glatten Klammern beziehen sich auf Gruppen von Zellen.
Zum Beispiel −
Live-Democ = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}; c(1:2,1:2)
MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −
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.
Zum Beispiel −
Live-Democ = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}; c{1, 2:4}
MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −
ans = Blue ans = Green ans = Yellow
MATLAB