Vous êtes sur la page 1sur 3

TP1 : Intoduction MATLAB

Enseignante : Bochra BOUCHHIMA MSEDDI


Filire RT2, INSAT
Septembre 2014
MATLAB est un langage de haut niveau et un environnement interactif pour le calcul numrique, la visualisation et la programmation. Chaque commande passe Matlab est interprte, le rsultat est affich, et
lutilisateur reoit de nouveau le prompt >> pour la commande suivante. Le but de ce TP est une prise en
main de cet outil en vue de lutiliser plus tard dans des traitements numriques de signaux.

Dfinition des variables

MATLAB est sensible la casse.


>> a=1 ; A=1.5 ;
Afficher la valeur de a puis celle de A
>> a
>> A
Un scalaire est interprt par MATLAB comme tant une matrice 1 1
>> size(A)
>> size(a) ;
Pour afficher le rsultat, omettre le point virgule " ;". Effectuer des oprations lmentaires
>> a+2
>> A 3
Remarquer que le rsultat est mis dans la variable dfaut "ans". Prciser le nom de variable utiliser.
>> b= sqrt(4)
>> c= (b*a)/2-A
La prcision de MATLAB est de 4 chiffres aprs la virgule. En vue de plus de prcision
>> format long
>> c
>> format short
>> c
Essayer dutiliser les flches et pour rappeler les commandes prcdentes.
Les nombres complexe sont manipuls de la mme manire que les nombres rels en terme doprations
mathmatiques. Un nombre rel est un nombre complexe dont la partie imaginaire est nulle. Pour dfinir un
nombre complexe :
>> z=1+ 1i*5
1 est prdfini dans MATLAB et stock dans la variable 1i (essayer aussi i ou j suivant votre version de
MATLAB). La valeur de est stocke dans une variable pi
>> pi
>> cos(pi)
>> sin(pi)
>> exp(pi*1i)
Observer le module, la partie relle, la partie imaginaire, la phase, le conjugu de z
>> abs(z) ; real(z) ; imag(z) ; angle(z) ; conj(z) ;

Vecteurs et matrices

Crer un vecteur ligne


>> V=[ 1 2 3 ]
1

Ce vecteur ligne peut aussi tre dfini de la faon suivante


>> V=1 :1 :3
Loprateur " :" nous servira dans les boucles plus tard. Que donne la commande suivante ?
>> X=5 :-1.5 :0
Donner la longueur de X
>> length(X)
Crer un vecteur colonne
>> W=[ 1 ; 2 ; 3]
Vrifier que W est gal au transpos de V. Si V est un vecteur complexe, V est son transpos conjugu
(transpos hermitien)
>> W == V
Dfinir une matrice M en dfinissant ses lignes
>> M= [1 2 3 ; 10 20 30 ; 100 200 300]
Dfinir une matrice comme tant une concatnation de vecteurs
>> B= [(1 :5) [W ; 0 ; 0] ones(5,1) zeros(5,1) ]
Vrifier ses dimensions
>> size(B)
Pour afficher le nombre de lignes de la matrice, taper
>> size(M,1)
Que faut il taper pour afficher le nombre de colonnes ? Appliquer ce raisonnement aux vecteurs ligne/colonne.
Pour accder un lment de la matrice, renseigner la position de cet lment (ligne , colonne)
>> M(1,4) % donne llment lintersection de la ligne 1 et le colonne 4
Une condition boolenne peut aussi tre utilise pour accder certaines valeurs. Quaffiche la commande
suivante ?
>> M(M>2)
Afficher toute la ligne dune matrice peut tre fait de la faon suivante
>> M(1, :)
Il sagit dune extraction dune sous-matrice partir de M. Que faut-il faire pour afficher la colonne 2 de la
matrice M ? les lments des lignes 1 et 2 de la colonne 2 ? la sous-matrice de M forme des lments situs
dans les lignes 2 3 et dans les colonnes 1 2.
Une matrice complexe est la somme dune matrice relle et une imaginaire
>> Z=M+1i*M
Oprations sur les matrices
Les oprations (additions +, soustractions , multiplications , puissances ) entre matrices, et entre matrices et vecteurs, suivent les conventions utilises en mathmatiques. Bien veiller vrifier les dimensions
de matrices avant de les multiplier. Il est possible de soustraire le mme scalaire tous les lments dune
matrice. On peut aussi diviser tous les lments de la matrice par le mme nombre non nul ou les multiplier
par le mme scalaire.
>> A=randn(5,3) ; B= eye(5) ; C=ones(3,2) ;
>> A*B % essayer B*A
>> A 2
>> A+B % soustraire de B une sous-matrice qui permet laddition avec A
>> A/0.5
>> B - 2 - C*2
Comment peut-on dfinir le produit scalaire de deux vecteurs ?
Les fonctions mathmatiques lmentaires (abs, sin, cos, log, exp, sqrt) sont aussi dfinies sur les composantes
des matrices /vecteurs. Elle agissent sur chaque lment.
En calcul matriciel, on a souvent besoin deffectuer une opration lment par lment. La multiplication, la
division et la puissance lment par lment se dfinissent comme suivant(laddition et la soustraction sont
des oprations qui se font lment par lment)
>> B.*B

>> C. 2
Quelle est la diffrence entre C. 2 et C 2 ?

Graphique

Pour faire des figures, on utilise la commande plot


>> plot(x,y)
dessine y en fonction de x. x est un vecteur contenant les abscisses, y est un vecteur de mme longueur
contenant les ordonnes. Pour ajouter un titre, utiliser title(Titre). Pour ajouter un label aux axes des
abscisses et des ordonnes, utiliser xlabel(abscisses) et ylabel(ordonnes).
>> hold on % permet de superposer plusieurs graphes
>> subplot % permet de partager lespace de dessin en plusieurs parties pour supporter plusieurs figures
>> axis([xmin xmax ymin ymax]) % dfinit les limites des axes.
>> plot3(x,y,z)% permet de faire une figure en 3D

Les fichiers .m

Afin dviter davoir retaper une srie de commandes, il est possible de crer un programme MATLAB,
sous le nom de "nomfichier.m" qui contient une srie de commandes MATLAB. Une fois sauvegard, il sagit
de lappeler dans MATLAB pour excuter les commandes dedans :
>> nomfichier
Dans ces fichiers, il est possible de programmer des fonctions avec des boucles, des conditions, etc. En plus
des fonctionnalits de base de MATLAB, une vaste bibliothque de fonctions (les toolbox en langage
MATLAB) sont votre disposition. Utiliser le HELP pour sinformer.
>> help matfun
retourne une liste de fonctions matricielles. Pour obtenir de linformation sur une fonction en particulier, il
sagit dutiliser la commande help avec le nom de la fonction.
Pour crer sa propre fonction, crer un nouveau fichier nomfichier.m et y mettre la dfinition de la fonction.
En voil un exemple
function [y1,y2] = InvertirInverse(x1,x2)
% Dfinition de ma fonction
y1 = inv(x2) ;
y2 = inv(x1) ;
end
Que fait cette fonction ? Noter les arguments en entre/ arguments en sortie de la fonction. Appeler la fonction linvite MATLAB.
boucle for
for i=1 :n
...
end

boucle while
while k<n
...
end

condition if
if x==0
then
....
elseif x==1
...
else
...
end

selection
switch x
case 0
...
case 1
...
end

sortie
for k=1 :100
if x>1000
then break ;
end