English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tableaux MATLAB

MATLAB中所有数据类型的所有变量都是多维数组。向量是一维数组,矩阵是二维数组。

我们已经讨论了向量和矩阵。在本章中,我们将讨论多维数组。但是,在此之前,让我们讨论一些特殊类型的数组。

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

cube magique

魔方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

Tableaux multidimensionnels

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

Exemple

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

Fonctions de tableau

MATLAB fournit les fonctions suivantes pour trier, tourner, permuter, redimensionner ou déplacer le contenu des tableaux.

FonctionAction
length

Longueur du vecteur ou la plus grande dimension de l'array

ndimsNombre de dimensions de l'array
numelNombre d'éléments de l'array
sizeNombre de dimensions de l'array
iscolumn

Déterminer si l'entrée est un vecteur en colonne

isemptyDéterminer si l'array est vide
ismatrix

Déterminer si l'entrée est un matrice

isrowDéterminer si l'entrée est un vecteur en ligne
isscalarDéterminer si l'entrée est un scalaire
isvectorDéterminer si l'entrée est un vecteur
blkdiag

Construire une matrice de diagonale en bloc selon les paramètres d'entrée

circshiftDéplacement circulaire de l'array
ctransposeTransposition conjuguée complexe
diagMatrice diagonale et diagonale du matrice
flipdim

Flippage de l'array le long de la dimension spécifiée

fliplrFlippage horizontal du matrice
flipudFlippage 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向量化表达

Exemple

以下示例说明了上面提到的一些功能。

元素的长度、维数和数量-

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)

Explication

  • 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

Exemple

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
}

Accéder aux données du tableau de cellules

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