Vous êtes sur la page 1sur 25

* Cours Matlab

Enseignant : EL HADJ ALI Hicham


Introduction

Le nom MATLAB est la contraction du terme anglais matrix laboratory. Le

langage MATLAB a été conçu par Cleve Moler à la fin des années 1970 à partir des

bibliothèques Fortran (Fortran est un langage de programmation).

MATLAB est à la fois un langage de programmation et un environnement

de développement développé et commercialisé par la société américaine

MathWorks. MATLAB est utilisé dans les domaines de l'éducation, de la recherche et

de l'industrie pour le calcul numérique mais aussi dans les phases de

développement de projets.
Introduction

Il existe de nombreux langages de programmation comme (Fortran, C,

JAVA, etc.), mais nous allons utiliser MATLAB dans notre application en raison des

caractéristiques de cette langage :

• Langage interprété : Pas de compilation donc pas d’attente pour compiler

• Programmation infiniment plus rapide pour le calcul et pour l’affichage

• Code facile à comprendre et très lisible


l’interface éditeur de MATLAB

Créer nouveau script Pour changer


le dossier de travail
Première interaction avec MATLAB :

Le moyen le plus simple pour utiliser MATLAB est d’écrire directement dans la

fenêtre de commande (Command Windows) juste après le curseur (promt) >>

Pour calculer une expression mathématique il suffit de l’écrire comme ceci :

>> 5+6 Puis on clique sur la touche Entrer pour voir le résultat.

ans =
11
Première interaction avec MATLAB :

Si nous voulons qu’une expression soit calculée mais sans afficher le résultat, on

ajoute un point virgule ‘;’ à la fin de l’expression comme suit :

>> 5+6 ;

>>

Pour créer une variable on utilise la structure simple :

nom_variable = valeur

Sans se préoccuper du type de la variable.


Première interaction avec MATLAB :

Par exemple :

>> a = 5;

>> b = ‘bonjeur’;

>> b = false;

C’est un point essentiel du langage Matlab, il permet d’utiliser dynamiquement les

variables et même de leurs changer de type au cours du programme.


Première interaction avec MATLAB :

Il est possible d’écrire plusieurs expression dans la même ligne en les faisant

séparées par des virgules ou des points virgules. Par exemple :

>> 5+6, 2*5-1, 12-4

ans =
11
ans =
9
ans =
8
Les Vecteurs

Pour créer un vecteur ( 0, 2, 4, 6, 8 ) on tape: [0,2,4,6,8]

Ou bien (on va de 0 à 8 avec un pas égal à 2)


0:2:8
ans = 0 2 4 6 8

Pour obtenir la transposée du précédent vecteur : ans’

Pour créer le vecteur ligne v : v = [0:2:8]


v=0 2 4 6 8

Pour afficher les 3 premières composantes de v :


v(1:3)
ans = 0 2 4
Les Vecteurs

Vous pouvez aussi utiliser un incrément négatif pour définir un vecteur en


partant de la dernière composante.
v=[0,-2,-4,-6,-8]
v= 0 -2 -4 -6 -8

v=[0:-2:-8]
v=0 -2 -4 -6 -8

v(1:3)-v(2:4)
ans = 2 2 2

La commande clc permet d'effacer l'écran

La commande clear permet d'effacer toutes les variables


clear
v
??? Undefined function or variable 'v'
Les Matrices
A = [ 1 2 3; 3 4 5; 6 7 8]
A=
1 2 3
3 4 5
6 7 8

La commande whos : Pour avoir la taille et la liste des variables utilisés


>> whos
Name Size Bytes Class Attributes

A 3x3 72 double

A(1:2,1:2)
A=
1 2
3 4
>> A(1:2,1:2)'
A=
1 3
2 4
Les opérations sur les matrices et les
vecteurs
>> v = [1 2 3];size(v) ans = 1 3
>> v = [1 2 3]';size(v) ans = 3 1

>> length(v) ans = 3


>> a=1; size(a) ans = 1 1

ADDITION, SOUSTRACTION

>> v = [1 2 3]'
>> b = [2 4 6]'
>> v+b ans =
3
6
9
MULTIPLICATION
>> v*b'
ans =
2 4 6
4 8 12
6 12 18
Les opérations sur les matrices et les
vecteurs

>> v'*b ans = 28


Multiplier chaque élément du vecteur v par l'élément correspondant du vecteur b
>> v.*b
ans =
2
8
18
Diviser chaque élément du vecteur v par l'élément correspondant du vecteur b
>> v./b
ans =
0.5000
0.5000
0.5000
Les opérations sur les matrices et les
vecteurs

Pour des matrices:


>> A=[1 2; 3 4], B=[1 -1; 2 2]
A=
1 2
3 4
B=
1 -1
2 2

>> A*B, A.*B


ans =
5 3
11 5

ans =
1 -2
6 8
Les opérations sur les matrices et les vecteurs
>> A/B, A./B
A=[0.5 0.2; -0.1 0.3]
ans =
EA=exp(A)
-0.5000 0.7500
EA =
-0.5000 1.7500
1.6487 1.2214
0.9048 1.3499
ans =
1.0000 -2.0000
CONCATENATION
1.5000 2.0000
>> [A,B]
A / B = A x (1 / B) = A x B-1
ans = 1 2 1 -1
A-1 = 1/det(A) x A'T
3 4 2 2
>> [A B]
ans =1 2 1 -1
3 4 2 2
>> [A ;B]
ans =
1 2
3 4
1 -1
2 2
Lecture et écriture

La commande input permet de demander à l'utilisateur de fournir des données.


var = input(' une phrase : ').

Pour saisir une réponse de type chaîne de caractères


var = input(' une phrase : ','s').

rep = input(' Affichage du resultat ? o/n [o] ','s');


if isempty(rep), rep = 'o';
end
if rep == 'o' | rep == 'y'
disp(['Le resultat vaut : ', num2str(rep)])
end
Programmer sous Matlab

Opérateurs de comparaison
•= = : égal à (x= =y)
•> : strictement plus grand que (x>y)
•>= : plus grand ou égal à (x>=y)
•~ = : différent de (x~ =y)
Les opérateurs logiques

• & : et (x & y)
• | : ou (x | y)
• ~ : non (~ x)
Instructions de contrôle

Boucle for
Syntaxe :
Ex
for s = 1.0: -0.1: 0.0
for indice = borne_inf : borne_sup disp(‘ la valeur courante de s est :')
Séquence d’instructions disp(s)
end end
Instructions de contrôle

L’instruction conditionnée IF
Syntaxe : nrows = 5;
if expression logique séquence d’instructions 1 ncols = 5;
else
séquence d’instructions 2 myData = ones(nrows, ncols);
End
% pour balayer la matrice
Il est possible d’effectuer un chois en cascade : for r = 1:nrows
Syntaxe : for c = 1:ncols
if expression logique 1 if r == c
séquence d’instructions 1 myData(r,c) = 2;
elseif expression logique 2 elseif abs(r - c) == 1
séquence d’instructions 2 myData(r,c) = -1;
… else
elseif expression logique N myData(r,c) = 0;
séquence d’instructions N end
else end
séquence d’instructions par défaut end
end
Scripts et fonctions
Un script est un ensemble d’instruction MATLAB qui joue le rôle de programme
principal. le script est écrit dans le fichier de nom nom.m

La déclaration d’une fonction:


function [vars1 ,…,varsm]= nom_fonc(vare1,…varen)
Séquence d’instructions
end
Où : vars1,…,varsm sont les variables de sortie de la fonction
vare1,…varen sont les variables d’entrée de la fonction.
Séquence d’instructions est le corps de la fonction.

Déclarer la fonction dans un fichier


function [moy,stdev] = stat(x)
n = length(x); moy = sum(x)/n;
stdev = sqrt(sum((x-moy)^2/n));
end

Appelle de la fonction dans pgm principal:


[mean stdev] = stat([12 45 98 26 53 ])
Graphisme 2D
la commande figure ouvrez une nouvelle fenêtre graphique
Graphisme 2D
la commande fplot
>>fplot('nomf', [xmin xmax])
où : nomf est le nom d'une fonction MATLAB
[xmin , xmax] est l'intervalle pour lequel est tracé le graphe de la fonction.

>>fplot('sin',[-2*pi 2*pi])

Pour tracer le graphe de la fonction h(x) = x sin(x) on peut définir la fonction


utilisateur h dans le fichier h.m de la manière suivante :
function y=h(x)
y=x.*sin(x);
end
On obtient alors le graphe de la fonction h par l'instruction :
>>fplot('h',[-2*pi 2*pi])
L'autre façon de procéder est d'exécuter l'instruction :

>>fplot(' x.* sin(x) ',[-2*pi 2*pi])


Graphisme 2D

Il est possible de tracer plusieurs fonctions sur la même figure. Il faut pour cela
utiliser la commande fplot de la manière suivante:
fplot('[nomf_1 , nomf_2 , nomf_3]', [xmin,xmax, ymin, ymax])

où nomf_1 , nomf_2 , nomf_3 sont les noms des fonctions.

Pour limiter le graphe aux ordonnées comprises entre les valeurs ymin et ymax
on passera comme second argument de la commande fplot le tableau
[xmin,xmax,ymin,ymax].

Ex:
fplot('[sin(x)/x , cos(x)/x]', [-5, 5, -5, 5])

La commande plot permet de tracer un ensemble de points de coordonnées (xi ,


yi), i=1,…,N. La syntaxe est plot(x,y) où x est le vecteur des abscisses et y est le
vecteur des ordonnées.
Ex:
>> x=[-2*pi:0.01:2*pi]; y = x.*sin(x);
>> plot(x,y)
Graphisme 2D
On peut spécifier la couleur d'une courbe, le style de trait et/ou le symbole à
chaque point (xi , yi).
On donne un troisième paramètre d'entrée à la commande plot qui est une
chaîne de 3 caractères de la forme 'c.-' (ce qui correspond à: Un trait plein
Bleu):
c :désignant la couleur du trait
. :le symbole du point
- : le type de trait

r rouge . point - trait plein


b bleu * étoile : pointillé
k Noir x marque x - pointillé long
g vert + plus

Les valeurs par défaut sont c = b, s = . et t = -


Il n'est pas obligatoire de spécifier chacun des trois caractères
Ex:
>> x = [-5:0.01:5]; y = x.^2.*cos(x); z = x.*cos(x);
>> plot(x,y,'b-',x,z,'r:');
La commande grid permet d'obtenir un quadrillage de la figure
Xlabel et Ylabel

La commande xlabel permet de mettre un texte sous l'axe des abscisses.


La commande ylabel fait de même pour l'axe des ordonnées.
La commande title permet de donner un titre à la figure.

Ex
>> P = 5; t = [0: 0.01:2];
>> c = 12*exp(-2*t) - 8*exp(-6*t);
>> plot(t,c); grid
>> xlabel('temps en minutes')
>> ylabel('concentration en gramme par litre')
>> title('évolution de la concentration du produit au cours du temps ')
Afficher plusieurs courbes séparés

la commande subplot (p,m, n ) permet de diviser la fenêtre d’affichage en P


courbes chacun est dessiné sur la ligne m et la colonne n.

income = [3.2 4.1 5.0 5.6];


outgo = [2.5 4.0 3.35 4.9];
subplot(2,1,1); plot(income); title('Income')
subplot(2,1,2); plot(outgo); title('Outgo')
Afficher plusieurs courbes dans une même fenêtre

la commande hold on permet d'afficher plusieurs courbes dans une même fenêtre
Si on tapera hold off (le résultat d'un nouvel graphe remplace le dessin
précédent).

>> e = exp(1);
>> figure
>> hold on
>> fplot('exp',[-1 1])
>> fplot('log',[1/e e])
>> plot([-1:0.01:e],[-1:0.01:e])
>> grid
>> hold off

Vous aimerez peut-être aussi