English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Alle Variablen aller Datentypen in MATLAB sind mehrdimensionale Arrays. Ein Vektor ist ein eindimensionales Array, und eine Matrix ist ein zweidimensionales Array.
Wir haben already über Vektoren und Matrizen diskutiert. In diesem Kapitel werden wir mehrdimensionale Arrays besprechen. Aber bevor wir das tun, lassen Sie uns einige spezielle Arten von Arrays besprechen.
In diesem Abschnitt werden wir einige Funktionen zur Erstellung spezieller Arrays diskutieren. Für alle diese Funktionen erstellt ein Parameter ein quadratisches Array, und zwei Parameter erstellen ein rechteckiges Array.
zeros()Funktion ein vollständiges Nullarray erstellen-
Zum Beispiel-
zeros(5)
MATLAB führt den obigen Befehl 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
ones()Funktion eine vollständige1Array-
Zum Beispiel-
ones(4,3)
MATLAB führt den obigen Befehl aus und gibt das folgende Ergebnis zurück-
ans = 1 1 1 1 1 1 1 1 1 1 1 1
eye()Funktion eine Einheitsmatrix erstellen.
Zum Beispiel-
eye(4)
MATLAB führt den obigen Befehl 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
rand()Funktion in (0,1eine gleichverteilte Zufallszahlmatrize auf der Grundlage von ) erstellen-
Zum Beispiel-
rand(3, 5)
MATLAB führt den obigen Befehl 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
Würfelmagische Quadrate
ist ein Quadrat, deren Elemente, wenn sie nach Zeilen, Spalten oder Diagonalen addiert werden, die gleiche Summe ergeben.magic()3Skalar. Die Funktion erstellt eine Magische Matrix. Sie nimmt einen einzigen Parameter an, der die Größe des Quadrats angibt. Der Parameter muss größer oder gleich
magic(4)
MATLAB führt den obigen Befehl 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
Arrays mit zwei oder mehr Dimensionen werden in MATLAB als mehrdimensionale Arrays bezeichnet. Mehrdimensionale Arrays in MATLAB sind eine Erweiterung der regulären zweidimensionalen Matrizen.
Normalerweise, um mehrdimensionale Arrays zu generieren, erstellen wir zunächst ein zweidimensionales Array und erweitern es.
Beispiel, lassen Sie uns eine zweidimensionale Array a erstellen.
a = [7 9 5; 6 1 9; 4 3 2]
MATLAB führt den obigen Befehl aus und gibt das folgende Ergebnis zurück-
a = 7 9 5 6 1 9 4 3 2
Arrayaist3×3Array; wir können eine dritte Dimension hinzufügeneinedurch Bereitstellung ähnlicher Werte-
a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]
MATLAB führt den obigen Befehl 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 eine mehrdimensionale Array erstellen, indem wir die Funktionen ones(), zeros() oder rand() verwenden.
Beispiel,
b = rand(4,3,2)
MATLAB führt den obigen Befehl 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 auchcat()Funktion, um mehrdimensionale Arrays zu bauen. Sie verbindet eine Liste von Arrays entlang der angegebenen Dimension-
Die Syntax der cat() -Funktion ist-
B = cat(dim, A1, A2...)
wo
Bist das neu erstellte Array
A1,A2, ... sind die zu verbindenden Arrays
dimist die Dimension, nach der die Arrays verbunden werden
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein-
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])
Wenn das Skript ausgeführt wird, wird 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
MATLAB bietet folgende Funktionen an, um den Inhalt von Arrays zu sortieren, zu drehen, zu versetzen, zu formen oder zu verschieben.
Funktion | Wirkung |
---|---|
length | Länge des Vektors oder maximale Arraydimension |
ndims | Arraydimension |
numel | Anzahl der Elemente im Array |
size | Arraydimension |
iscolumn | Eingangsparameter als Spaltenvektor bestimmen |
isempty | Array als leer bestimmen |
ismatrix | Eingangsparameter als Matrix bestimmen |
isrow | Eingangsparameter als Zeilenvektor bestimmen |
isscalar | Eingangsparameter als Skalar bestimmen |
isvector | Eingangsparameter als Vektor bestimmen |
blkdiag | Blöcke der Diagonalmatrix nach Eingangsparameter konstruieren |
circshift | Array kreisförmig verschieben |
ctranspose | Komplexes Konjugat transponieren |
diag | Diagonalmatrix und Diagonalen des Arrays |
flipdim | Array entlang der angegebenen Dimension umdrehen |
fliplr | Matrix von links nach rechts umdrehen |
flipud | Matrix umdrehen |
ipermute | Umkehren N-D-Dimensionen des Arrays |
permute | Neu anordnen N-D-Dimensionen des Arrays |
repmat | 复制和切片数组 |
reshape | 重塑数组 |
rot90 | 将矩阵旋转90度 |
shiftdim | 移动维度 |
issorted | 确定集合元素是否按排序顺序 |
sort | 按升序或降序对数组元素排序 |
sortrows | 按升序对行进行排序 |
squeeze | 删除单例维度 |
transpose | 转置 |
vectorize | 向量化表达式 |
以下示例说明了上面提到的一些功能。
元素的长度、维度和数量-
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein-
x = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9]; length(x) % x 向量的长度 y = rand(3, 4, 5, 2); ndims(y) % 数组 y 的维度数量 s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab']; numel(s) % s 中的元素数量
Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt-
ans = 8 ans = 4 ans = 23
数组元素的循环移位
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein-
a = [1 2 3; 4 5 6; 7 8 9] % 原始数组 a b = circshift(a,1) % 循环下移首维值 1. c = circshift(a,[1 -1]) % 首维值循环下移 1 % 将第二维度的值向左移动 % 通过 1.
Wenn Sie die Datei ausführen, wird das folgende 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
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein-
v = [ 23 45 12 9 5 0 19 17] % 水平向量 sort(v) % 排序 v m = [2 6 4; 5 3 9; 2 0 1] % 二维数组 sort(m, 1) % 沿行排序 m sort(m, 2) % 沿列排序 m
Wenn Sie die Datei ausführen, wird das folgende 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
单元格数组是索引单元格的数组,其中每个单元格可以存储不同维度和数据类型的数组。
cell该函数用于创建单元格数组。单元格函数的语法是-
C = cell(dim) C = cell(dim1,...,dimN) D = cell(obj)
Cist ein Zellenarray;
dimist ein Skalarintegervector, der die Dimensionen des Zellenarrays C angibt;
dim1,...،dimNist ein Skalarintegervector, das die C-Dimensionen angibt;
objist einer der folgenden-
Java-Array oder Objekt
Array vom Typ .NET System.String oder System.Object
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein-
c = cell(2, 5); c = {'Rot', 'Blau', 'Grün', 'Gelb', 'Weiß'; 1 2 3 4 5}
Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt-
c = { [1,1] = Rot [2,1] = 1 [1,2] = Blau [2,2] = 2 [1,3] = Grün [2,3] = 3 [1,4] = Gelb [2,4] = 4 [1,5] = Weiß [2,5] = 5 }
Es gibt zwei Methoden, um die Elemente einer Zellenkombination zu referenzieren-
Platzieren Sie den Index in den geschweiften Klammern [], um auf die Zellenkombination zu verweisen
Platzieren Sie den Index in den geschweiften Klammern {}, um auf die Daten in einer einzigen Zelle zu verweisen
Wenn Sie den Index in den ersten Klammern platzieren, bezieht sich das auf die Zellenkombination.
Der Index in den runden Klammern bezieht sich auf die Zellenkombination.
Zum Beispiel-
c = {'Rot', 'Blau', 'Grün', 'Gelb', 'Weiß'; 1 2 3 4 5}; c(1:2,1:2)
MATLAB führt den obigen Befehl aus und gibt das folgende Ergebnis zurück-
ans = { [1,1] = Rot [2,1] = 1 [1,2] = Blau [2,2] = 2 }
Sie können auch die großen Klammern verwenden, um den Inhalt der Zellen zu erreichen.
Zum Beispiel-
c = {'Rot', 'Blau', 'Grün', 'Gelb', 'Weiß'; 1 2 3 4 5}; c{1, 2:4}
MATLAB führt den obigen Befehl aus und gibt das folgende Ergebnis zurück-
ans = Blau ans = Grün ans = Gelb