Vous êtes sur la page 1sur 10

Année Universitaire : 2022- 2023

Enseignante : Ines KETATA

TP N° 1 : INITIATION A MATLAB

Caractéristiques :

MATLAB : abréviation de « Matrix Laboratory ».


MATLAB est un logiciel de calcul numérique produit par MathWorks (voir le site web
http://www.mathworks.com/). Il est disponible sur plusieurs plates formes.
MATLAB est un langage simple et efficace, a été conçu pour le calcul matriciel, d’où son
intérêt en Traitement du Signal (produit scalaire). Son atout est la simplicité. Il offre un
langage de programmation avec de nombreuses fonctions pré-programmées.

1. Aspects élémentaires
1.1. Aides

help -> donne l’aide sur une fonction ou un toolkit ;


helpdesk -> documentation en hypertexte ;
helpwin -> aide en ligne dans une fenêtre séparée ;
lookfor -> recherche d’un mot clé ;
which -> localise fonctions et fichiers ;
what -> liste des fichiers matlab dans le répertoire courant ;
exist -> check si une fonction ou une variable existe dans le workspace ;
pwd-> connaître le nom du répertoire actif de Matlab ;
dir-> connaître le nom des fichiers et répertoires contenus dans le répertoire actif de Matlab ;
quit-> quitter Matlab.

1.2. Mode Interactif

En mode commande, MATLAB affiche des chevrons >> et attend une commande :
>> 1+3
>> 3^3
>> 2*sin (pi/4)

Le dernier résultat est stocké dans la variable ans qu’il est possible de réutiliser :
>> ans^2
>> ans-2
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


>> 2*2
REQ : Pas de point virgule à la fin d’une expression : affichage du résultat.

1
Année Universitaire : 2022- 2023
Enseignante : Ines KETATA

1.4. Variables scalaires, workspace, opérations élémentaires

>> var=2
>> autre=3 ;
>> who
>> whos
>> clear autre
>> who
>> clear
>> clc
>> clear all

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

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

>> format long g


>> pi
Pour rappeler des commandes précédentes, 2 possibilités :
Utiliser les touches du clavier ↑ ou ↓ et les commandes précédentes apparaissent dans
l’ordre chronologique ;
Taper les premiers caractères de la commande puis utiliser les touches ↑ ou ↓. Après
avoir choisi la commande à rappeler, il est toujours possible de la modifier en se
déplaçant avec les touches et → et en effectuant la correction

1.6. Les variables

Les résultats peuvent être stockés dans les variables :


>> x=pi/3
>> cos(x)
>> y=sin(x)^2+cos(x)^2 ;

Si on rentre des commandes erronées, Matlab nous l’indique par un message d’erreur.
>> 5*
??? 5*
Error : Expected a variable, function, or constant, found « end of line ».

2
Année Universitaire : 2022- 2023
Enseignante : Ines KETATA

>> aaa
??? Undefined function or variable ‘aaa’.

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=’)


>> disp (‘ceci est un test’) ;

1.8. Chaîne de caractères

Une chaine de caractères est un vecteur-ligne donc chaque élément est un caractère, une
chaine est délimitée par des quotes simples (') et peut contenir des espaces et autres caractères
spéciaux.

Exemple :
>> s = 'Bonjour a tous'

>> s(1), s(2), s(4:10)

>> s(4:7) = 'soir'

>> s2 = ' et bienvenue'

>> s3 = [s s2]

Remarque : la manière de concaténer deux chaines l'une à la suite de l'autre en utilisant les
crochets est la même que pour les vecteurs-ligne. On peut utiliser aussi la virgule au lieu de
l’espace.
>> str=[‘ali’] ;
>> str1=[‘ben amar’]
>> str2=[str,’ ’,str1]

La commande eval permet d'évaluer une chaîne de caractères comme une commande Matlab.
La command eval s'utilise ainsi :

Exemple :

>> str=[‘a=b’]
>> b=5 ;
>> eval (str);

>> x(1)=2;
>> str=['x_1=x(1)']
>> eval(str)

3
Année Universitaire : 2022- 2023
Enseignante : Ines KETATA

str =

x_1=x(1)

Exemple :

>> comd='s1=sin(1)'
>> comd = s1=sin(1)
>> eval(comd)

s1 = 0.8415

>> t=[1 2 3]; for i=1:3


str=['t_',num2str(i),'=t(',num2str(i),')']; eval(str); end

ou

>> t=[1 2 3]; for i=1:3 str=['t_’,num2str(i),’=t(i)']; eval(str);


end

>> clear all


>> clc

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]
>> E= a(1)

Très utilisé dans MATLAB


>> début=0
>> fin=3
>> pas =0.5
>> compt= début: pas : fin
>> compt1= 0 :0.3 :1.1
Les deux points permettent donc de générer des vecteurs (rempli de valeurs équidistantes)
compt1= 0 :0.3 :1.1 génère le vecteur compt1 (0 0.3000 0.6000 0.9000).

4
Année Universitaire : 2022- 2023
Enseignante : Ines KETATA

b) Transposition

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

c) Combinaison de vecteurs

>> b = [1:3]
>> c= [10 :10 :30]
>> d= [b c]

On peut faire plus compliqué :


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

00000000
>> t = [0 3 6 9 12 15 18]
t1 = t(2:5)
ou bien tous les éléments d'un indice donnés à la fin du vecteur :
t2 = t(4:end) % end signifie dans ce cas le dernier indice du tableau

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


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

d) Opérations scalaires

>> a= [4 5 3]
>> s= sum(a)
>> p= prod(a)
>> m= mean(a)
>> r= sqrt(a)

>> f= [0 -1 3]
>> som= a+f

>> clear all


>> clc

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]

5
Année Universitaire : 2022- 2023
Enseignante : Ines KETATA

>> x2= [1 :1 :3 ; 4 :1 :6 ; 7 :1 :9]

>> A= x1(2,3)

>> A1=x1(:,2)

>> A2=x1(2,:)

b) Opérations matricielles

>> H= inv (x1)


>> Z= det (x1)

c) Opérations entre matrices

 Sommations

>> y1= [0 0 1 ; 3 3 4 ; 1 1 0]
>> P= x1+y1
>> R= y1+x1

 Soustractions

>> Y= y1-x1

 Multiplications

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

>> x1*z1
??? Error using = => *
Inner matrix dimensions must agree.

>> D= x1*z1’

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


>> f1=[0 0 1; 3 3 4; 1 1 0]
>> pro1=a1*f1
>> pro2=f1*a1

Multiplication élément par élément :


>> x1
>> y1
>> K= x1.*y1 % (x1 et y1 ont les mêmes dimensions)

6
Année Universitaire : 2022- 2023
Enseignante : Ines KETATA

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
>> J= x1.^2

 Divisions

>> z1
>> z2= [4 5 6 ; 14 15 16]
>> z1/z2
>> z1\z2
>> X= A\B % donne la solution de A*X=B
>> X= B/A % donne la solution de X*A=B

Division élément par élément


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

d) Matrices particulières

>> N= ones (3,2)

>> U= zeros(2,5)

>> M= eye(4)
>> M1= eye(2,4)

>> D= diag([1 :4])

>> Q= rand (3,2)

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
>> [m,n]= size(x1)

>> length(x1)

f) Manipulation de matrices et sous-matrices

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

7
Année Universitaire : 2022- 2023
Enseignante : Ines KETATA

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


>> A2 (3, 1)=21 ; A2

>> C1= [A1, A2]


>> C2= [A1 ; A2]

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


>> xy= [1:3 ; 5 :7 ; 9 :11]
Extraction de vecteurs et sous matrices :
>> xy( :, 2)
>> xy (:, 1:2)
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)
>> E1= A1 ([1,2], [2,3])
>> E2= A1 ( : , 2)
>> G1= A1 (2, :)
Que contiendra la matrice H1 suivante : H1= A1([3, 1], :) ?

>> A3= [1 2 3 ; 4 5 6 ; 7 8 9]
>> flipud(A3) % flip up-down
>> fliplr(A3) % flip left-right
>> tril(A3) % obtenir la partie triangulaire inférieure (l pour lower) d’une matrice
>> triu(A3) % obtenir la partie triangulaire supérieure (u pour upper) d’une matrice.

>> clear all


>> clc

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)

>> hold on
>> x ;
>> y1= cos(x) ;
>> plot (x, y1)

>> hold off


>> plot (x, y1)
>> clear all
>> clc

8
Année Universitaire : 2022- 2023
Enseignante : Ines KETATA

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


>> sin (x) ;
>> plot (x, sin(x), ‘r—‘)

>> subplot (4, 2, 4)


>> plot (x, sin(x))
>> clear all
>> clc

Graphique 3D :
>> t= -3*pi : pi/10 : 3*pi ;
>> x= 4*sin(t) ; y= cos(t) ; z= 2*t ;
>> plot3(x, y, z)
>> title( ‘hélice circulaire’)
>> xlabel (‘x’), ylabel (‘y’), zlabel (‘z’),
>> grid

>> clear all


>> clc

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 ;
b) Fonctions avec variables d’entrée/sortie

Ex. fonction fact avec paramètre n en entrée, définie dans le fichier fact.m :

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

9
Année Universitaire : 2022- 2023
Enseignante : Ines KETATA

Toutes les variables définies dans la fonction sont locales à cette fonction. Ce n’est pas le cas
des fichiers qui ne débutent pas par function.
Une fonction peut retourner plusieurs résultats :
function [x, y]= calcul (a, b)
x= a+b ;
y= a*b ;

Ex. appel par [u, v]= calcul (2, 3)

10

Vous aimerez peut-être aussi