Cours N°3 - Programmer - Sous - Matlab

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 19

Cours n°3

Programmer sous
Matlab
Introduction
• Un script Matlab est compose d'une suite d'instructions
ou de commandes, toutes
séparées par une virgule (,), un point-virgule (;) ou un
retour à la ligne (touche entrée).
• Matlab facilite l’édition d’un nouveau script en utilisant
le bouton (New Script) ou file New---> script
(tout dépend la version utilisée) qui fait appel à
l’éditeur des fichiers Matlab.
• La commande edit aussi fait appel a l’éditeur de Matlab
dans le Windows Command en créant un fichier du
nom spécifie (edit nom_fich.m).
Exemple de script Matlab

L’exécution du script se fait soit :


-Par le Windows command en spécifiant juste le nom du
script (du fichier);
- ou bien en appuyant sur l’outil de l’éditeur de script.
Affichage (écriture)des variables
L’affichage des variables se fait par plusieurs manières (les plus
utilisées):
1- par la spécification de leurs noms sans point virgule;
2- la commande disp(X) affiche une variable X (chaine de caractères,
entier, …) sur la fenêtre de Windows command.
Si on veut afficher plusieurs variables avec disp, on doit ajouter les
crochets aux parenthèses de disp.
Disp([x,y])

NB: La commande disp n’accepte qu’un seul type de donnée à la


fois. Dans le cas écheant, une conversion de type est toujours
nécessaire ; par exemple, toutes les variables sont converties en
chaines de caractères.
Exemples d’affichage

Pour les conversions entre types de données :


•Num2str (number to string ) (déjà expliqué) l’autre sens existe aussi
• Int2str (integer to string) d’un entier vers des caractères)
•Toutes les autres conversions à voir avec help
Lecture de données à partir du clavier
La commande input(‘message’) fait introduire une valeur à
partir du clavier en affichant d’abord le message écrit entre
apostrophes.
rayon=input('donner la valeur du rayon ');
pi=3.14;
surf=pi*rayon^2;
peri=2*pi*rayon;
disp([surf,peri]) %les deux variables sont réelles
disp(['Surface = ',num2str(surf),' Perimetre = ',num2str(peri)])
L’exécution donnera :
donner la valeur du rayon 5
78.5000 31.4000
Surface = 78.5 Perimetre = 31.4
Introduction des vecteurs et matrices
vecteur=input('valeurs du vecteurs sont ');
matrice=input('les éléments de la matrice sont: ')
moy=mean(vecteur);
som=sum(vecteur);
s=size(matrice);
matrice(:,2)%affichage de la 2eme colonne
disp([moy,som]) %les deux variables sont réelles
disp(['taille de la matrice = ',int2str(s)])
valeurs du vecteurs sont [1 2 3 4]
les éléments de la matrice sont: [1 2 3; 4 5 6;7 8 9]
matrice =
1 2 3
4 5 6
7 8 9
ans =
2
5
8
2.5000 10.0000
taille de la matrice = 3 3
L’instruction If
- Cas d’un IF simple , il se présente :

-Cas d’in IF multiple

- Cas d’un IF Double

Les segments de elseif est else sont optionnels, par contre la


parution de if et end est obligatoire. Then n’existe pas sous
matlab
Les expressions booléennes
Une expression booléenne (logique) simple est constituée de
deux opérandes reliées par un opérateur relationnel (>,<,== ,
~=,<=,>=).
L’expression logique n’a pas besoin des parenthèses.
Pour relier plusieurs expressions on utilise les opérateurs
logiques suivants:
Et représenté par &
Ou sous matlab |
non représenté par ~
Exemple 5 ≤ x ≤ 10
Est écrit sous matlab if x>=5 & x<=10
Exemple d’utilisation de If
Le script Test_if.m suivant Son exécution est la suivante:
x1=input('x1 ='); >> test_if
x2=input('x2 ='); x1 =5
if x1>x2
x2 =3
disp('x1 est le plus grand')
elseif x1==x2 x1 est le plus grand
disp('x1 et x2 sont égaux') >> test_if
else x1 =5
disp('x2 est le plus grand') x2 =5
end
x1 et x2 sont égaux
>> test_if
x1 =5
x2 =8
x2 est le plus grand
La boucle for (Pour)
La boucle for se présente comme suit :
Avec:
Indice: variable de parcours qui prend ses
valeurs dans l’intervalle [début, fin]
Debut: valeur initiale de l’intervalle;
Fin: valeur finale;
Pas: le pas d’incrémentation , si le pas n’est
pas spécifié, par défaut il vaut 1.
Exemple utilisant la boucle for
Script test_for
L’exécution donnera
%calcul du factoriel donner la valeur de n 5
clc,clear n=
n=input('donner la valeur de n ') 5
fact=1; le factoriel de 5 est 120
for i=1:1:n
fact=fact*i;
end
disp(['le factoriel de ',int2str(n),' est ‘
, int2str(fact)])
La boucle while (Tant que)
La syntaxe de while sous Matlab est la suivante:

L’expression logique a les mêmes


caractéristiques que celle utilisée
dans l’instruction if. L’expression
peut être simple ou composée.
Tant que l’expression logique
donne un vrai , on réexécute les
instructions.
Exemple utilisant la boucle while
% afficher les multiplicateurs
de 3 inférieurs à n
clc,clear
Exemple d’exécution :
n=input('donner n ');
donner n 20
while n>=0 18
if mod(n,3)==0 15
disp(n) 12
end 9
6
n=n-1; 3
end 0
Utilisation des fonctions sous Matlab
• Les fonctions peuvent être déclarées directement
dans un fichier script qui doit
obligatoirement porter le même nom de la fonction à
déclarer:
Sur l’éditeur des scripts matlab, faire File New
Function. Cette fonction doit être enregistrée dans
le même répertoire du script Matlab appelant
Présentation des fonctions
% Fonction 1
%Script Appelant function v=fonc1(a,b)
Instr1; ……
Instr2; …..
….. v=…….
Res= fonc1 (x,y) end
Instr n;
…..
[Res2 Res2]= fonc2 (x,y,z) % Fonction 2
…… function [v v2 ]=fonc2(a,b,c)
……
…..
v=…….
v2=…..
end
Déclaration des fonctions
• Une fonction se déclare comme suit :
function nom_fonc (arg1, arg2, …)
Lorsque il n’y a pas de variable résultat de sortie;
function V_res = nom_fonc(arg1, arg2, …)
une fonction avec une seule variable résultat de sortie
(V_res).
function [V_res1, V_res2, …] = nom_fonc(arg1, arg 2, …)
une fonction avec plusieurs variables résultats de sortie
(V_res1, V_res2,…). Ici cette fonction joue le rôle des
subroutines (Fortran) ou les procédures (Pascal).
L’appel à la fonction réalisée sous
Matlab
Cet appel se fait à partir d’un script appelant
(comme un programme principal) ou à partir
d’une autre fonction. Tous ces programmes
doivent être enregistrés dans le même
répertoire.
Exemple
% script principal %script de la fonction
note1 =input(‘la note 1 = ‘); function [s m]=calcul(n1,n2,n3)
note2 =input(‘la note 2 = ‘); s=n1+n2+n3
note3 =input(‘la note 3 = ‘); m=s/3
[som moy]= calcul(note1,note2,note3) end
disp([‘la somme est ‘,num2str(som)])
disp([‘la moyenne est ‘,num2str(moy)])

Vous aimerez peut-être aussi