0% ont trouvé ce document utile (0 vote)
346 vues23 pages

Correction TP N°1 Initiation A Matlab

Ce document décrit les fonctionnalités de base de MATLAB pour la manipulation de vecteurs et de matrices. Il présente comment créer, modifier et effectuer des opérations sur des vecteurs et matrices.

Transféré par

hiba zayani
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
346 vues23 pages

Correction TP N°1 Initiation A Matlab

Ce document décrit les fonctionnalités de base de MATLAB pour la manipulation de vecteurs et de matrices. Il présente comment créer, modifier et effectuer des opérations sur des vecteurs et matrices.

Transféré par

hiba zayani
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

1.2.

Mode Interactif

En mode commande, MATLAB affiche des chevrons >> et attend une commande :

>> 1+3

ans =

>> 3^3

ans =

27

Le dernier résultat est stocké dans la variable ans qu’il est possible de réutiliser :

>> ans^2

ans =

729

>> ans-2

ans =

727
Les commandes introduites antérieurement peuvent être rappelées par l’utilisation des flèches
haut et bas. Analyser des autres flèches et des touches end, esc, del, backspace ou des
combinaisons de touches.

1.3. Commentaires, ponctuations

>> 2+3 % je fais une somme : Commentaire

ans =

>> 2*2 % lorsqu’il n’y a pas « ; » à la fin de l’instruction, elle est exécutée et le résultat est
affiché

ans =

4
REQ : Pas de point virgule à la fin d’une expression : affichage du résultat.
1.4. Variables scalaires, workspace, opérations élémentaires

>> var=2

var =

>> autre=3 ; % lors qu’on ajoute un « ; » à la fin de l’instruction, elle est exécutée mais le
résultat n’est pas affiché

>> who % fournit la liste des fonctions définies dans le workspace

Your variables are:

ans autre var

>> whos % donne plus d’informations sous windows

Name Size Bytes Class Attributes

autre 1x1 8 double


var 1x1 8 double

>> clear autre % efface la variable autre du workspace

>> who

Your variables are:

Var

>> clear % efface toutes les variables du workspace

>> clc % efface le contenu du ‘Command Window’

>> clear all % efface toutes les variables de la mémoire

 Opérations élémentaires : + - * / or \ ^
>> 4/2 % Division

ans =

>> 4\2 % équivalent à 2/4

ans =

0.5000
1.5. Affichage

FORMAT indique le format d’affichage des nombres.


FORMAT SHORT (par défaut) : 4 chiffres à droite du point décimal
FORMAT LONG : 14 chiffres à droite du point décimal
FORMAT SHORT G : 14 chiffres à droite du point décimal
FORMAT LONG G : 14 chiffres à droite du point décimal

 Exemples
>> pi % 4 chiffres à droite du point décimal

ans =

3.1416

>> format long g % 14 chiffres à droite du point décimal


>> pi

ans =

3.14159265358979

1.6. Les variables

>> x=pi/3 % le résultat est stocké dans la variable x

x=

1.0471975511966

>> cos(x) % équivalent à cos(pi/3)

ans =

0.5

y=sin(x)^2+cos(x)^2 ; % le résultat est stocké dans la variable y

Si on rentre des commandes erronées, Matlab nous l’indique par un message d’erreur.

>> 5* % expression incomplète


??? 5*
|
Error: Expression or statement is incomplete or incorrect. % message d’erreur

>> aaa % variable indéfinie


??? Undefined function or variable 'aaa'. % message d’erreur
1.7. Entrées-sorties

fopen (ouverture d’un fichier) fclose (fermeture d’un fichier)


fscanf (lecture formatée) fprintf (écriture formatée)

>> N=input('valeur de N='); % entrée interactive


valeur de N=

>> disp('ceci est un test'); % affiche le texte


ceci est un test

1.8. Chaîne de caractères

>> Ch='salut' % conserver une chaîne de caractère dans la variable Ch

Ch =

Salut

2. Vecteurs et matrices
Cette partie doit être bien maîtrisée pour les TP de Traitement du Signal.

2.1. Vecteurs

a)Création de vecteurs

Par défaut, le vecteur est une ligne à plusieurs colonnes

>> a= [4 5 3] % créer un vecteur ligne


a=

4 5 3

>> E= a(1) % élément N° 1 du vecteur a

E=

Très utilisé dans MATLAB


>> debut=0

debut =

0
>> fin=3

fin =
3
>> pas =0.5

pas =

0.5
>> compt= debut: pas : fin % créer un vecteur ‘compt’ dont les éléments varient de ‘debut ‘
jusqu’à ‘fin’ en ajoutant chaque fois un pas

compt =

Columns 1 through 5

0 0.5 1 1.5 2

Columns 6 through 7

2.5 3

>> compt1= 0 :0.3 :1.1 % générer un vecteur compt1

compt1 =

0 0.3 0.6 0.9

b) Transposition

L’opérateur apostrophe utilisée pour créer un vecteur colonne est en fait l’opérateur
transposition :

>> tab=a' % vecteur colonne : le transposé de a

tab =

4
5
3

c) Combinaison de vecteurs

>> b = [1:3] % créer un vecteur b


b=

1 2 3

>> c= [10 :10 :30]

c=

10 20 30
>> d= [b c] % rassembler les éléments des vecteurs b et c dans un seul vecteur d

d=

1 2 3 10 20 30

>> e= [b (2 :-1 :1) c] % on accole c avec une portion de b dans l’ordre renversé

e=

1 2 3 2 1 10 20 30

Notez la différence entre () et [] :


() Ensemble d’arguments ==fonction
[] Énumération d’éléments ==tableau

d) Opérations scalaires

>> a= [4 5 3]

a=

4 5 3

>> s= sum(a) % sommer les éléments du vecteur a

s=

12

>> p= prod(a) % calculer le produit des éléments du vecteur a

p=

60

>> m= mean(a) % calculer la moyenne des éléments du vecteur a

m=

4
>> r= sqrt(a) % créer un vecteur r dont les éléments sont la racine carrée de chaque élément
du vecteur a

r=

2.0000 2.2361 1.7321


>> som= a+f % créer un vecteur som dont les éléments sont la somme des éléments des
vecteurs a et f

som =

4 4 6

2.2. Matrices

a)Création de matrices

Une matrice est un ensemble de lignes comportant toutes le même nombre de colonnes.
Matlab, depuis la version 5, supporte les matrices à n dimensions (n>2).

>> x1= [1 2 3 ; 4 5 6 ; 7 8 9] % créer une matrice x1 : on sépare les lignes par des point-
virgules

x1 =

1 2 3
4 5 6
7 8 9

>> x2= [1 :1 :3 ; 4 :1 :6 ; 7 :1 :9] % créer une matrice x2 par définir des vecteurs

x2 =

1 2 3
4 5 6
7 8 9

>> A= x1(2,3) % élément se trouvant à la ligne 2, colonne 3 de la matrice x1

A=

6
>> A1=x1(:,2) % la colonne 2 de la matrice x1

A1 =

2
5
8
>> A2=x1(2,:) % la ligne 2 de la matrice x1

A2 =

4 5 6
b) Opérations matricielles

>> H= inv (x1) % donner la matrice inverse de x1


Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 1.541976e-018.

H=

1.0e+016 *

-0.4504 0.9007 -0.4504


0.9007 -1.8014 0.9007
-0.4504 0.9007 -0.4504

>> Z= det (x1) % calculer le déterminant de la matrice x1

Z=

c) Opérations entre matrices

 Sommations

>> y1= [0 0 1 ; 3 3 4 ; 1 1 0] % générer une matrice y1

y1 =

0 0 1
3 3 4
1 1 0

>> P= x1+y1

P=

1 2 4
7 8 10
8 9 9

>> R= y1+x1 % la somme matricielle est commutative

R=

1 2 4
7 8 10
8 9 9
 Soustractions

>> Y= y1-x1 % soustraire les valeurs de la matrice y1 des valeurs de la matrice x1


Y=

-1 -2 -2
-1 -2 -2
-6 -7 -9

 Multiplications

>> x1 % rappeler la définition de x1


x1 =

1 2 3
4 5 6
7 8 9

>> z1= [1 :1 :3 ; 11 :1 :13]


z1 =

1 2 3
11 12 13

>> x1*z1 % x1 et z1 deux matrices de dimensions différentes


??? Error using ==> mtimes
Inner matrix dimensions must agree.  la solution est :

>> D= x1*z1'

D=

14 74
32 182
50 290

>> a1=[1 0 -1; 3 2 1; 4 4 4]

a1 =

1 0 -1
3 2 1
4 4 4

>> f1=[0 0 1; 3 3 4; 1 1 0]
f1 =

0 0 1
3 3 4
1 1 0
>> pro1=a1*f1

pro1 =

-1 -1 1
7 7 11
16 16 20

>> pro2=f1*a1 % le produit matriciel des deux matrices n’est pas commutatif

pro2 =

4 4 4
28 22 16
4 2 0

Multiplication élément par élément :

>> x1

x1 =

1 2 3
4 5 6
7 8 9

>> y1

y1 =

0 0 1
3 3 4
1 1 0

>> K= x1.*y1 % multiplication point à point : multiplier membre à membre chaque élément
du vecteur x1 par chaque élément du vecteur y1

K=

0 0 3
12 15 24
7 8 0

Cl. L’opération x1*z1’ est la multiplication matricielle des matrices x1 et z1’ de dimensions
respectives M.N et N.P, tandis que x1.*y1 est la multiplication élément par élément de 2
matrices de dimensions identiques.
>> G= x1^2

G=

30 36 42
66 81 96
102 126 150

>> J= x1.^2

J=

1 4 9
16 25 36
49 64 81

 Divisions

>> z1

z1 =

1 2 3
11 12 13

>> z2= [4 5 6 ; 14 15 16]

z2 =

4 5 6
14 15 16

>> z1/z2

ans =

1.3000 -0.3000
0.3000 0.7000

>> z1\z2

ans =

-0.5000 -1.0000 -1.5000


0 0 0
1.5000 2.0000 2.5000

>> X= A\B % donne la solution de A*X=B = équivalent à inv(A)*B


>> X= B/A % donne la solution de X*A=B = équivalent à B*inv(A)
Division élément par élément

>> z1./z2 % chaque élément de z1 est divisé par l’élément équivalent de z2

ans =

0.2500 0.4000 0.5000


0.7857 0.8000 0.8125

>> z1.\z2 % chaque élément de z2 est divisé par l’élément équivalent de z1

ans =

4.0000 2.5000 2.0000


1.2727 1.2500 1.2308

d) Matrices particulières

>> N= ones (3,2) % créer une matrice de 3 lignes et 2 colonnes dont les éléments sont égales
à1

N=

1 1
1 1
1 1

>> U= zeros(2,5) % créer une matrice de 2 lignes et 5 colonnes dont les éléments sont égales
à0
U=

0 0 0 0 0
0 0 0 0 0

>> M= eye(4) % créer une matrice d’identité d’ordre 4


M=

1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
>> M1= eye(2,4)

M1 =

1 0 0 0
0 1 0 0
>> D= diag([1 :4]) % créer une matrice D dont les éléments de diagonale sont les éléments
du vecteur [1 :4]

D=

1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 4

>> Q= rand (3,2) % créer une matrice de 3 lignes et 2 colonnes dont les éléments sont de
valeurs aléatoires

Q=

0.8147 0.9134
0.9058 0.6324
0.1270 0.0975

Ones (n,m) : Matrice de taille n*m ne contenant que des 1.


zeros (n,m) : Matrice de taille n*m ne contenant que des 0.
rand (n,m) : Matrice de taille n £ m contenant des nombres aléatoires entre 0 et 1.

e) Caractéristiques des matrices

>> x1

x1 =

1 2 3
4 5 6
7 8 9

>> [m,n]= size(x1) % donner la dimension de la matrice

m=

n=

3
>> length(x1) % donner la longueur

ans =

3
f) Manipulation de matrices et sous-matrices

>> A1= [1 2 3 ; 4 5 6 ; 7 8 9]

A1 =

1 2 3
4 5 6
7 8 9

>> A2= [1, 2, 3 ; 4, 5, 6 ; 7, 8, 9]

A2 =

1 2 3
4 5 6
7 8 9

>> A2 (3, 1)=21 ; % modifier la valeur de l’élément se trouvant à la ligne 3, colonne 1 par 21
>> A2

A2 =

1 2 3
4 5 6
21 8 9

>> C1= [A1, A2] % afficher les deux matrices A1 et A2 sur la même ligne

C1 =

1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 21 8 9

>> C2= [A1 ; A2] % afficher les deux matrices A1 et A2 l’une au dessous de l’autre

C2 =
1 2 3
4 5 6
7 8 9
1 2 3
4 5 6
21 8 9

>> xy= [1:3, 5:7, 9:11]


xy =

1 2 3 5 6 7 9 10 11
>> xy= [1:3 ; 5 :7 ; 9 :11]

xy =

1 2 3
5 6 7
9 10 11

Extraction de vecteurs et sous matrices :

>> xy( :, 2)

ans =

2
6
10

>> xy(:,1:2)

ans =

1 2
5 6
9 10

Etudier le résultat des commandes suivantes, qui extraient des éléments différents de la
matrice A1 définie préalablement.

>> D1= A1(2,1)

D1 =

>> E1= A1 ([1,2], [2,3])

E1 =

2 3
5 6
>> E2= A1 ( : , 2)

E2 =

2
5
8
>> G1= A1 (2, :)

G1 =

4 5 6

>> H1= A1([3, 1], :)

H1 =

7 8 9
1 2 3

>> A3= [1 2 3 ; 4 5 6 ; 7 8 9]

A3 =

1 2 3
4 5 6
7 8 9

>> flipud(A3) % flip up-down

ans =

7 8 9
4 5 6
1 2 3

>> fliplr(A3) % flip left-right

ans =

3 2 1
6 5 4
9 8 7

3. Affichage graphique

Etant donné deux vecteurs de même taille, x et y, la fonction plot(x, y) trace le graphe de y en
fonction de x : y= f(x).

>> x= 0 :0.1 :2*pi ;


>> y= sin(x) ;
>> plot (x, y) % tracer y=f(x)
>> hold on % tracer plusieurs courbes sur le même graphe
>> y1= cos(x);
>> plot (x, y1)

>> hold off % désactiver la commande hold on


>> plot(x,y1)
>> x= 0:0.1:2*pi;
>> sin (x);
>> plot (x,sin(x),'r --') % tracer sin(x) en trait pointillé rouge

>> subplot (4, 2, 4) % diviser la fênêtre en 4 lignes et 2 colonnes et placer la courbe sin(x)
dans la figure N°4
>> plot (x, sin(x))
Graphique 3D :

>> t= -3*pi : pi/10 : 3*pi ;


>> x= 4*sin(t) ; y= cos(t) ; z= 2*t ;
>> plot3(x, y, z) % représenter la courbe en trois dimensions

>> title( 'hélice circulaire') % ajouter un titre pour la figure


>> xlabel ('x'), ylabel ('y'), zlabel ('z'),

>> grid
4. Fichiers de commande et fonctions

Fichier de commandes (avec l’extension .m) : fichier édité à partir de votre éditeur préféré,
Contenant une suite de commandes appelées en tapant le nom du fichier (sans extension).

a) Utilisation de boucles et contrôles for, while, if

a= [0 -1 4 -6 9 -7]
b= []
c= []
for i=1 : length(a)
if a(i) <0
b= [b a(i)]
else
c= [c a(i)]
end
end

le résultat est :

a=

0 -1 4 -6 9 -7

b=

[]
c=

[]

c=

b=

-1

c=

0 4

b=

-1 -6

c=

0 4 9

b=

-1 -6 -7

b) Fonctions avec variables d’entrée/sortie


Sous le fichier fact.m :

function f= fact(n)
f=1;
n=4;
for i=1:n
f= f*i ;
end
end

le résultat est :

ans =
24

Vous aimerez peut-être aussi