English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MATLAB中所有数据类型的所有变量都是多维数组。向量是一维数组,矩阵是二维数组。
我们已经讨论了向量和矩阵。在本章中,我们将讨论多维数组。但是,在此之前,让我们讨论一些特殊类型的数组。
在本节中,我们将讨论一些创建特殊数组的函数。对于所有这些功能,一个参数创建一个正方形数组,双参数创建一个矩形数组。
zeros()函数创建一个全零的数组-
Par exemple-
zeros(5)
MATLAB exécutera l'instruction ci-dessus et renverra le résultat suivant-
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()函数创建一个全1的数组-
Par exemple-
ones(4,3)
MATLAB exécutera l'instruction ci-dessus et renverra le résultat suivant-
ans = 1 1 1 1 1 1 1 1 1 1 1 1
eye()函数创建一个单位矩阵。
Par exemple-
eye(4)
MATLAB exécutera l'instruction ci-dessus et renverra le résultat suivant-
ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
rand()函数在(0,1)创建一个均匀分布的随机数数组-
Par exemple-
rand(3, 5)
MATLAB exécutera l'instruction ci-dessus et renverra le résultat suivant-
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
魔方magic square
est un carré qui produit le même total lorsque ses éléments sont additionnés en ligne, en colonne ou en diagonale.magic()3du scalaire. La fonction crée une matrice magique. Elle prend un seul paramètre, qui donne la taille du carré. Le paramètre doit être supérieur ou égal à
magic(4)
MATLAB exécutera l'instruction ci-dessus et renverra le résultat suivant-
ans = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
Les tableaux avec deux dimensions ou plus dans MATLAB sont appelés tableaux multidimensionnels. Les tableaux multidimensionnels dans MATLAB sont une extension des matrices bidimensionnelles conventionnelles.
Généralement, pour générer un tableau multidimensionnel, nous créons d'abord un tableau bidimensionnel et l'élargissons.
Par exemple, créons un tableau bidimensionnel a.
a = [7 9 5; 6 1 9; 4 3 2]
MATLAB exécutera l'instruction ci-dessus et renverra le résultat suivant-
a = 7 9 5 6 1 9 4 3 2
arrayaest3×3array;nous pouvons ajouter la troisième dimensionun,en fournissant des valeurs similaires-
a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]
MATLAB exécutera l'instruction ci-dessus et renverra le résultat suivant-
a = ans(:,:,1) = 0 0 0 0 0 0 0 0 0 ans(:,:,2) = 1 2 3 4 5 6 7 8 9
Nous pouvons également créer un tableau multidimensionnel en utilisant les fonctions ones(), zeros() ou rand().
Par exemple,
b = rand(4,3,2)
MATLAB exécutera l'instruction ci-dessus et renverra le résultat suivant-
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
Nous pouvons également utilisercat()fonction pour construire un tableau multidimensionnel. Elle connecte une liste de tableaux le long de la dimension spécifiée-
La syntaxe de la fonction cat() est-
B = cat(dim, A1, A2...)
où,
Best le tableau créé
A1,A2,... sont les tableaux à串联
dimest la dimension sur laquelle les tableaux sont connectés
Créez un fichier de script et tapez le code suivant-
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])
Lorsque le fichier est exécuté, il affiche-
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 fournit les fonctions suivantes pour trier, tourner, permuter, redimensionner ou déplacer le contenu des tableaux.
Fonction | Action |
---|---|
length | Longueur du vecteur ou la plus grande dimension de l'array |
ndims | Nombre de dimensions de l'array |
numel | Nombre d'éléments de l'array |
size | Nombre de dimensions de l'array |
iscolumn | Déterminer si l'entrée est un vecteur en colonne |
isempty | Déterminer si l'array est vide |
ismatrix | Déterminer si l'entrée est un matrice |
isrow | Déterminer si l'entrée est un vecteur en ligne |
isscalar | Déterminer si l'entrée est un scalaire |
isvector | Déterminer si l'entrée est un vecteur |
blkdiag | Construire une matrice de diagonale en bloc selon les paramètres d'entrée |
circshift | Déplacement circulaire de l'array |
ctranspose | Transposition conjuguée complexe |
diag | Matrice diagonale et diagonale du matrice |
flipdim | Flippage de l'array le long de la dimension spécifiée |
fliplr | Flippage horizontal du matrice |
flipud | Flippage vertical du matrice |
ipermute | Inverser N-Le nombre de dimensions du tableau D |
permute | Réarranger N-Le nombre de dimensions du tableau D |
repmat | 复制和切片数组 |
reshape | 重塑数组 |
rot90 | 将矩阵旋转90度 |
shiftdim | 移动维度 |
issorted | 确定集合元素是否按排序顺序 |
sort | 按升序或降序对数组元素排序 |
sortrows | 按升序对行进行排序 |
squeeze | 删除单例维度 |
transpose | 转置 |
vectorize | 向量化表达 |
以下示例说明了上面提到的一些功能。
元素的长度、维数和数量-
Créez un fichier de script et tapez le code suivant-
x = [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
Lorsque vous exécutez le fichier, il affiche le résultat suivant-
ans = 8 ans = 4 ans = 23
数组元素的循环移位
Créez un fichier de script et tapez le code suivant-
a = [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.
Lorsque vous exécutez le fichier, il affiche le résultat suivant-
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
Créez un fichier de script et tapez le code suivant-
v = [ 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
Lorsque vous exécutez le fichier, il affiche le résultat suivant-
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)
Cest un tableau de cellules
dimest un entier scalaire ou une vecteur d'entiers utilisés pour spécifier les dimensions du tableau de cellules C
dim1,... ,dimNest un entier scalaire de dimension C spécifié
objC'est l'un des suivants-
Tableau ou objet Java
Tableau d'objets de type .NET System.String ou System.Object
Créez un fichier de script et tapez le code suivant-
c = cell(2, 5); c = {'Rouge', 'Bleu', 'Vert', 'Jaune', 'Blanc'; 1 2 3 4 5}
Lorsque vous exécutez le fichier, il affiche le résultat suivant-
c = { [1,1] = Rouge [2,1] = 1 [1,2] = Bleu [2,2] = 2 [1,3] = Vert [2,3] = 3 [1,4] = Jaune [2,4] = 4 [1,5] = Blanc [2,5] = 5 }
Il y a deux méthodes pour accéder aux éléments d'un tableau de cellules-
Encadrez les indices entre les premiers crochets () pour accéder à un ensemble de cellules
Encadrez les indices entre accolades {} pour accéder aux données d'une seule cellule
Lorsque vous mettez les indices entre les premiers parenthèses, ils font référence à un ensemble de cellules.
L'index du tableau de cellules dans les parenthèses est un ensemble de cellules.
Par exemple-
c = {'Rouge', 'Bleu', 'Vert', 'Jaune', 'Blanc'; 1 2 3 4 5}; c(1:2,1:2)
MATLAB exécutera l'instruction ci-dessus et renverra le résultat suivant-
ans = { [1,1] = Rouge [2,1] = 1 [1,2] = Bleu [2,2] = 2 }
Vous pouvez également utiliser l'indexage avec des accolades pour accéder au contenu des cellules.
Par exemple-
c = {'Rouge', 'Bleu', 'Vert', 'Jaune', 'Blanc'; 1 2 3 4 5}; c{1, 2:4}
MATLAB exécutera l'instruction ci-dessus et renverra le résultat suivant-
ans = Bleu ans = Vert ans = Jaune