[retour à la page principale | page précédente | page suivante]

Chapitre VI: MANIPULATION DE MATRICES

A- Généralités

Dans cette section, nous allons rencontrer un certain nombre de fonctions disponibles dans MATLAB. Celles-ci nous permettront de voir plusieurs manipulations possibles avec les matrices.

B- Exercice résolu

Rotation

Soit la matrice

En exécutant la commande:

    B = rot90(A)

On obtient le résultat suivant:

    B =

0 -1 6

1 5 4

2 -2 3

>>

La fonction rot90 permet d'effectuer une rotation de 90 degrés (la rotation se fait dans le sens anti-horaire).

Flip

On utilise deux fonctions issues de flip pour intervertir une matrice. Considérons les commandes MATLAB suivantes:

   A = [1 2;4 8;-2 0]

B = fliplr(A)

C = flipud(B)

On obtient le résultat suivant:

   A =

1 2

4 8

-2 0

B =

2 1

8 4

0 -2

C =

0 -2

8 4

2 1

>>

La commande flipr intervertit de la gauche vers la droite tandis que la commande flipud intervertit de haut en bas.

Reshape

Considérons les commandes MATLAB suivantes:

    A = [2 5 6 -1;3 -2 10 0];

B = reshape(A,4,2)

C = reshape(A,8,1)

On obtient les résultats suivants:

 
    A =

2 5 6 -1

3 -2 10 0

B =

2 6

3 10

5 -1

-2 0

C =

2

3

5

-2

6

10

-1

0

>

Que s'est-il passé?

On utilise reshape avec trois arguments : le premier indique la matrice originale, les 2ième et 3ième arguments indiquent respectivement le nombre de lignes et le nombre de colonnes de la nouvelle matrice. Les nombres sont choisis en colonne à partir de la vieille matrice pour former la nouvelle matrice ordonnée en colonne.

Attention: soit la matrice A(m*n), en écrivant reshape(A,m',n') assurez vous que m*n = m'*n' sinon MATLAB vous signale une erreur.

Extraction

En MATLAB les fonctions diag, triu, tril, permettent d'extraire des éléments d'une matrice.

Considérons les instructions suivantes:

    V = [1 2 3]

A = diag(V)

On obtient comme résultat:

    V =

1 2 3

A =

1 0 0

0 2 0

0 0 3

On obtient une matrice 3X3 dont la diagonale est la matrice V.

Considérons les commandes MATLAB suivantes:

    A = [1:2:7; 3:3:12;4:-1:1;1:4]

B = triu(A)

C = triu(A,-1)

D = triu(A,3)

On obtient les résultats suivants:

    A =

1 3 5 7

3 6 9 12

4 3 2 1

1 2 3 4

B =

1 3 5 7

0 6 9 12

0 0 2 1

0 0 0 4

C =

1 3 5 7

3 6 9 12

0 3 2 1

0 0 3 4

D =

0 0 0 7

0 0 0 0

0 0 0 0

0 0 0 0

>>

La fonction MATLAB triu avec comme argument la matrice originale seule, génère une nouvelle matrice qui a la même diagonale principale que A et les même valeurs situées au dessus de cette diagonale, avec des 0 partout ailleurs. La fonction triu(A,k) est une matrice qui a la même taille et les mêmes élèments que A qui sont situés sur et au dessus de la kième diagonale; on compléte la nouvelle matrice obtenue avec des 0.

Considérons les instructions suivantes:

    A = [1:2:7;3:3:12;4:-1:1;1:4]

B = tril(A)

C = tril(A,-1)

D = tril(A,3)

On obtient les résultats ci-dessous:

    A =

1 3 5 7

3 6 9 12

4 3 2 1

1 2 3 4

B =

1 0 0 0

3 6 0 0

4 3 2 0

1 2 3 4

C =

0 0 0 0

3 0 0 0

4 3 0 0

1 2 3 0

D =

1 3 5 7

3 6 9 12

4 3 2 1

1 2 3 4

La fonction tril ressemble à la fonction triu, mais elle opère sur les triangles inférieurs des matrices en lieu et place des triangles supérieurs.

C- Exercices

VI- Soit les matrices suivantes:


              

Calculer, en utilisant MATLAB

VI.1 - rot90(B)

VI.2 - rot90(A,3)

VI.3 - fliplr(A)

VI.4 - flipud(fliplr(B))

VI.5 - reshape(A,4,3)

VI.6 - reshape(A,6,2)

VI.7 - reshape(A,2,6)

VI.8 - reshape(flipud(B),8,2)

VI.9 - triu(B)

VI.10 - triu(B,-1)

VI.11 - tril(A,2)

VI.12 -diag(rot90(B))

[retour à la page principale | page précédente | page suivante]