MATLAB Itérer à travers la matrice

Ammar Ali 30 janvier 2023
  1. Itérer dans une matrice à l’aide de l’indexation linéaire dans MATLAB
  2. Itérer à travers une matrice à l’aide de la fonction arrayfun() dans MATLAB
  3. Itérer à travers une matrice à l’aide de la fonction cellfun() dans MATLAB
MATLAB Itérer à travers la matrice

Ce didacticiel expliquera comment parcourir une matrice à l’aide des fonctions d’indexation linéaire, arrayfun() et cellfun() dans MATLAB.

Itérer dans une matrice à l’aide de l’indexation linéaire dans MATLAB

Dans une matrice, il existe deux types d’indexation ; l’une est l’indexation de ligne et de colonne dans laquelle nous devons donner le numéro de ligne et de colonne pour accéder à un élément présent dans la matrice, la seconde est l’indexation linéaire dans laquelle nous pouvons accéder à un élément en utilisant uniquement son index linéaire. Par exemple, consultez le code ci-dessous.

m = [2 6 1; 17 19 18]
row_col_index = m(2,3)
linear_index = m(6)

Production:

m =

     2     6     1
    17    19    18


row_col_index =

    18


linear_index =

    18

Dans le code ci-dessus, nous accédons au dernier élément de la matrice en utilisant les deux types d’indexation. En indexation linéaire, les éléments sont présents dans la matrice à partir de la première colonne. Donc, si vous comptez à partir de la première colonne, le dernier élément est présent au sixième index. Pour itérer une matrice à l’aide de l’indexation des lignes et des colonnes, vous avez besoin de deux boucles, mais dans le cas de l’indexation linéaire, vous n’avez besoin que d’une seule boucle. Par exemple, parcourons une matrice en utilisant l’indexation linéaire. Voir le code ci-dessous.

m = [2 6 1; 17 19 18];
for i = 1:numel(m)
    disp(m(i))
end

Production:

     2

    17

     6

    19

     1

    18

Dans ce qui précède, nous avons utilisé la fonction namel() pour obtenir le nombre total d’éléments présents dans la matrice donnée. Et à l’aide d’une boucle et d’une indexation linéaire, nous avons affiché chaque élément un par un dans la fenêtre de commande. Notez la séquence par laquelle les éléments sont affichés sur la fenêtre de commande, et c’est la séquence de l’indexation linéaire.

Itérer à travers une matrice à l’aide de la fonction arrayfun() dans MATLAB

Si vous avez une fonction et que vous souhaitez l’appliquer à chaque élément du tableau ou de la matrice, une façon de le faire consiste à parcourir chaque élément comme décrit ci-dessus et à appliquer la fonction sur chaque élément, mais il existe une autre méthode simple dans laquelle vous peut utiliser le arrayfun() pour appliquer la fonction donnée à chaque élément du tableau ou de la matrice. Voir le code ci-dessous.

output = arrayfun(myFunction , array);

Dans le code ci-dessus, le arrayfun() applique la fonction stockée dans myFunction à chaque élément du tableau un par un et stocke le résultat dans la variable output. Par exemple, appliquons une fonction définie à chaque élément d’une matrice. Voir le code ci-dessous.

myMatrix = [0 90; 180 270]
myFunction = @(x) cos(x);
output = arrayfun(myFunction , myMatrix)

Production:

myMatrix =

     0    90
   180   270


output =

    1.0000   -0.4481
   -0.5985    0.9844

Comme vous pouvez le voir sur la sortie, la fonction cos(x) est appliquée à chaque élément de la matrice, et le résultat est stocké dans la variable output. Consultez ce lien pour plus d’informations sur le arrayfun().

Itérer à travers une matrice à l’aide de la fonction cellfun() dans MATLAB

Si vous avez une fonction et que vous souhaitez l’appliquer à chaque élément d’une cellule donnée, une façon de le faire consiste à parcourir chaque élément comme décrit ci-dessus et à appliquer la fonction sur chaque élément, mais il existe une autre méthode simple dans laquelle vous pouvez utilisez le cellfun() pour appliquer la fonction donnée à chaque élément de la cellule. Voir le code ci-dessous.

output = cellfun(myFunction , myCell);

Dans le code ci-dessus, le cellfun() applique la fonction stockée dans myFunction à chaque élément de la cellule un par un et stocke le résultat dans la variable output. Par exemple, appliquons une fonction définie à chaque élément d’une cellule. Voir le code ci-dessous.

myCell = {0,90,180,270}
myFunction = @(x) sin(x);
output = cellfun(myFunction , myCell)

Production:

myCell =

  1×4 cell array

    {[0]}    {[90]}    {[180]}    {[270]}


output =

         0    0.8940   -0.8012   -0.1760

Comme vous pouvez le voir sur la sortie, la fonction sin(x) est appliquée à chaque élément de la cellule, et le résultat est stocké dans la variable output. Consultez ce lien pour plus d’informations sur le cellfun().

Auteur: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Article connexe - MATLAB Matrix