Cours Matlab El Mokhtari Complet
Cours Matlab El Mokhtari Complet
Cours Matlab El Mokhtari Complet
Karim El mokhtari
FST Tanger
Ce que Matlab est
Langage de haut niveau orienté matrices (MATrix LABoratory)
Syntaxe similaire au BASIC, éléments du C, interface graphique (IDE)
Type de base : matrice 2 à 3 dimensions de nombres réels
La plupart des opérateurs et fonctions s’appliquent directement sur les
matrice Pas besoin de boucles
Grand nombre de « toolboxes » avec de multiples fonctions et algoritmes
numériques : statistiques, traitement d’image, traitement du signal,
télélcommunications, …
Système d’entrée/sortie très simple pour les fichiers données/multimédia
Très populaire pour les expérimentations et le prototypage rapide
Très utilisé dans la recherche et l’enseignement scientifique
Ce que Matlab n’est pas
oN’est pas un langage de programmation à usage général
(comme C)
oN’est pas très orienté objet
oInterface graphique limitée
oN’est pas très rapide (mais très performant pour les matrices)
oN’est pas gratuit
Déplacer,
Menu Voir ou changer minimiser, fermer
Aide le dossier actuel la fenêtre
dynamique
Opérateurs de base : +, - , * , / , ^
(^: puissance)
Utiliser Matlab comme calculateur
>> t = 5; Le ; la fin de la ligne exécute la
>> t = t+1 commande sans afficher le résultat
t =
6 t=t+1 permet d’incrémenter t
x 1x1 8 double
y 1x1 8 double
Autres commandes utiles
>> clc clc : efface la fenêtre des commandes
>> y=1+2+3 ...
+4+5 pour continuer une ligne sur la ligne
y = suivante, taper …
15
>> sum(x)
ans = Somme, moyenne, max, min des
-3 éléments du vecteur
>> mean(x)
ans =
-0.7500
>> max(x)
ans =
2
>> min(x)
ans =
-5
Tracer graphiquement un vecteur
>> x=0:0.1:10; plot(x,z) : trace le vecteur z (sur l’axe
>> z=sin(x); des ordonnées) en fonction du vecteur
>> plot(x,z); x (sur l’axe des abcisses)
>> grid;
grid : affiche une grille
Tracer graphiquement un vecteur
>> xlabel('Angle'); xlabel et ylabel : indique la
>> ylabel('Sinus'); légende de l’axe x et y
>> title('Fonction Sin');
title : Titre du graphique
Tracer plusieurs vecteurs
1ère méthode
>> x=0:0.1:10;
>> y1=sin(x);
>> y2=2*sin(x);
>> plot(x,y1,'--',x,y2,'-');
>> grid;
>> legend('sin(x)', '2*sin(x)');
>> axis([0 2*pi -3 3]);
Autres écritures :
>> x=A^-1*b;
>> x=A\b;
Création d’un script matlab ou m-file
Un script matlab ou m-file est un fichier qui englobe plusieurs
commandes matlab enregistré dans un fichier pour faciliter sa
sauvegarde ou son exécution
On crée un script en utilisant la commande edit ou avec le
bouton New
>> edit prg1.m
>> prg1
Création d’un fichier de fonction
Il est possible de créer des fonctions sur Matlab dans des
fichiers séparés portant le même nom que la fonction
function f = factoriel(n)
% FACTORIEL(N) retourne le factoriel de N.
f = prod(1:n);
Appel de la fonction :
>> [x,y] = sp(4,5)
x =
9
y =
20
Entrée/sortie des données
On peut lire les données sur la ligne de commande avec les
commande input
On affiche les résultats avec disp ou fprintf (ressemble à printf
en langage C)
a = input('Entrer a : ');
b = input('Entrer b : ');
disp (a*b);
fprintf('%d * %d = %d \n',a,b,a*b);
Test conditionnel
Pour réaliser des tests sur matlab, on utilise if …. else …. end
a = input('Entrer a : ');
if (a>=0)
disp ('Nombre positif');
else
disp ('Nombre négatif');
end
Boucles
Matlab dispose aussi des boucles for et while :
for k=1:10
disp(k);
end
%---------------
k = 1;
while (k<=10)
disp(k);
k = k+1;
end
Sauvegarde et lecture du workspace
Pour sauvegarder tout le workspace dans un fichier, on utilise
save :
>> save session1
1
𝐹 𝑝 =
1 + 𝑅𝐶𝑝
Ve Vs
qui facilitent la création et la simulation
C
10uF
Ve C
10uF
Vs
1
𝐹 𝑝 =
1 + 𝑅𝐶𝑝
>> R=100; C=10e-6;
>> F = 1 / (1 + R*C*s)
F =
1
-----------
0.001 s + 1
Continuous-time transfer function.
Réponse indicielle
R
Ve Vs
à un échelon d’entrée) par la commande
C
10uF
step :
>> step(F); grid; 1
𝐹 𝑝 =
1 + 𝑅𝐶𝑝
Réponse fréquentielle
R
Ve Vs
sinusoïdale) s’obtient à l’aide du diagramme
C
10uF
Ve Vs
impulsion de Dirac) s’obtient par la
C
10uF
commande:
>> impulse(F); grid; 1
𝐹 𝑝 =
1 + 𝑅𝐶𝑝
Ve Vs
zéros avec la commande pzmap. Les pôles
C
10uF
1/𝑅𝐶 1000
𝐹 𝑝 = =
1 𝑝 − (−1000)
𝑝 − (− 𝑅𝐶 )
Ve Vs
pour étudier les différents types de
C
10uF
Θ(𝑝) 𝐾 𝑟𝑑/𝑠
𝐹 𝑝 = = 𝑒𝑛
𝑉(𝑝) 𝐽𝑝 + 𝑏 𝐿𝑝 + 𝑅 + 𝐾 2 𝑉
C(p) F(p)
H(p)
C(p) F(p)
H(p)
C(p) F(p)
H(p)
C(p) F(p)
H(p)
C(p) F(p)
H(p)
C(p) F(p)
H(p)
C(p) F(p)
H(p)
C(p) F(p)
H(p)