Cours matlab gpe

86
Prof. Abdellah ADIB FI-GPE 2011-2012 1 Introduction à MATLAB

Transcript of Cours matlab gpe

Page 1: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 1

Introduction à MATLAB

Page 2: Cours matlab gpe

MATrix LABoratory

C’est un système interactif de programmation scientifique, pour le calcul numérique et la visualisation graphique.

Il est basé sur la représentation matricielle des données.

Le nom est dérivée de cette représentation MATLAB =

MATLAB

Page 3: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 3

Plan du coursIntroduction et notions de base du MATLAB

Les fichiers et la programmation avec MATLAB

Instructions de contrôles sous MATLAB

Graphisme sur MATLAB

Fonctions d’entrée/sortie sous MATLAB

Page 4: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 4

Comment programmer ?x=[2 3 7;

9 5 2;2 1 2];

X=inv(x); X= -0.2424 -0.0303 0.87880.4242 0.3030 -1.78790.0303 -0.1212 0.5152;

Y=sin(X); Y=0.9093 0.1411 0.65700.4121 -0.9589 0.90930.9093 0.8415 0.9093

Page 5: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 5

Quelle version ?

Copyright (c) 1984-2011by

The MathWorks, Inc.

Page 6: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 6

Qu’est-ce que MATLAB© ? Sur le plan de la programmation, le langage MATLAB© est basé sur une

structure de donnée où l’élément de base est le tableau avec un jeu d’opérations adapté à cette entité.

La syntaxe pour le traitement de variables qui se représentent sous la forme de vecteurs ou matrices, dont la dimension n’a pas à être fixée, se trouve simplifiée.

En plus une programmathèque permet des opérations variées et riches en fonctionnalités. MATLAB© est un outil puissant qui permet la résolution de nombreux problèmes en beaucoup moins de temps qu’il n’en faudrait pour les formuler en C ou en Pascal.

Page 7: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 7

Qu’est-ce que MATLAB© ? Il consiste en un langage interprété qui s’exécute dans une fenêtre dite

d’exécution.

L’intérêt de MATLAB© tient, d’une part, à sa simplicité d’utilisation :

1) Pas de compilation, 2) Déclaration implicite des variables utilisées et, d’autre part, 3) A sa richesse fonctionnelle : arithmétique matricielle et nombreuses

fonctions de haut niveau dans divers domaines (analyse numérique, statistique, commande optimale, représentation graphique, ...).

Page 8: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 8

Qu’est-ce que MATLAB© ?Logiciel interactif de calcul scientifique :Langage de programmation de haut niveauCalcul numériqueCalcul symboliqueCalcul matricielFonctions mathématiques usuelles (sin, exp, log10, …)Racines d’un polynôme Intégration numériqueBoites à Outils; e.g. Traitement Numérique du SignalGraphiques 1D, 2D & 3DEtc.

Page 9: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 9

Domaines couverts par MATLAB©

Page 10: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 10

Autres atouts de MATLAB© Ordinateur = super calculatrice Apprentissage facile, commandes intuitives Moins de C, Pascal, Fortran, Basic, etc. Inclusion des graphiques dans les documents Interaction avec des programmes externes Boites à outils couvrants une multitude de disciplines Une aide en ligne Sauvegarde de l’environnement du travail Etc. …

Page 11: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 11

Set path

Fenêtre de commandes MATLAB©

Fenêtre de Commandes

Rappel ligne de commande

Matlab doit être installé, pour lancer l’exécution il faut effectuer un double clic sur l’icône de matlab.

Page 12: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 12

Aide

Il est à noter que toutes les commandes sont en anglais et l’aide en ligne également !

Page 13: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 13

Aide

Les commandes Matlab© doivent toujours être tapées en minuscules même si dans l'aide en ligne elles apparaissent en majuscules.

Page 14: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 14

Types de données Dans Matlab il y a un seul type de données: le type de matrice

(matrix).

Tout est matrice → un nombre est une matrice carrée d’ordre 1.

Pas de déclaration de type.

L’utilisation ne s’occupe pas de l’allocation mémoire.

Les matrices et vecteurs peuvent être redimensionnées.

Page 15: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 15

Variables MATLABVariable :

- Matrice m x n, m, n >1,- Vecteur 1 x n, n >1, - Scalaire 1 x 1

Nombres ou chaînes de caractères :- Nom_de_variable : aBz23k...

- 1er caractère = lettre - 19 premiers caractères reconnus - A a

Page 16: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 16

Variables MATLAB Les noms des variables et de fonctions sont composés de

lettres et chiffres.

Matlab fait la distinction entre les majuscules et minuscules, ainsi mavar, MAVAR et MAvar sont des variables différentes.

Si la variable existe déjà, le contenu est écrasé par une nouvelle valeur affectée à cette variable.

Page 17: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 17

Caractères et variables réservésCaractères spéciaux

= assignment statement[ used to form vectors and matrices] see [( arithmetic expression precedence) see (. decimal point... continue statement to the next line, separate subscripts and function arguments; end rows, suppress printing% comments: subscripting, vector generation! execute operating system command

Page 18: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 18

Fonctions d’usage généralhelp help facilitydemo demowho list variables in memorywhat list M-files on disksize row and column dimensionslength vector lengthclear clear workspacecomputer type of computerquit quitexit exit

Page 19: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 19

Caractères et variables réservésValeurs spéciales

ans answer when expression is not assignedeps floating point precisionpi i,j -1Inf NaN not-a-Numberclock wall clockdate dateflops floating point operation countnargin number of function input argumentsnargout number of function output arguments

Page 20: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 20

Modes de Programmation

Interactif

Page 21: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 21

Mode interactif

Page 22: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 22

Page 23: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 23

Vecteurs ou tableaux à 1 dimension Le moyen le plus simple de saisir un vecteur est d’entrer ses

éléments en les séparant par des blancs ou par des virgules

» x=[ 6 4 7]x=

6 4 7

Autre façon de saisir un vecteur ligne

» x=[6, 4, 7]x=

6 4 7

Page 24: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 24

Vecteurs ou tableaux à 1 dimension Ce vecteur est considéré comme une matrice à une ligne et

trois colonnes

» size(x) Ou bien » [m n]=size(x)ans = m=1

1 3 n=3

La longueur d’un tableau, ou bien sa dimension

» longeur=length(x)longeur= 3

Page 25: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 25

+ addition- subtraction* multiplication/ right division\ left division^ power‘ conjugate transpose

Opérateurs arithmétiques “Matrix” et “Array”

Opérateurs “Matrix” Opérateurs “Array”

Arithmétique élément-par-élément

+ addition- subtraction.* multiplication./ right division.\ left division.^ power.‘ transpose

Page 26: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 26

Vecteurs ou tableaux à 1 dimension Si on veut créer le vecteur v=[6 4 7 1 2 8], on peut utiliser le

vecteur x précédent

» v=[x 1 2 8] %Concaténationv=

6 4 7 1 2 8

Dans Matlab, les indices d’un tableau commencent à 1. Pour récupérer une composante d’un vecteur, il faut spécifier son indice entre parenthèses:

» v(2)ans=

4

Page 27: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 27

Vecteurs ou tableaux à 1 dimension L’addition et la soustraction de vecteur de mêmes dimensions se font

élément par élément

» x=[4 3]; y=[5 7]; x-yans=

-1 -4» x+yans=

9 10

Transposé conjugué < ’> et transposé d’un vecteur < .’>

» tx = x ’tx=

43

Page 28: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 28

Vecteurs ou tableaux à 1 dimension Combinaison linéaire de deux vecteurs de mêmes dimensions se font

élément par élément

» x=[4 3]; y=[5 7]; 2*x - 4*yans=

-12 -22» 4*x + 3*y.^2ans=

91 159

Division de deux vecteurs

» x/ytx=

43

Page 29: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 29

Vecteurs ou tableaux à 1 dimension» q = 4 : 10

q=4 5 6 7 8 9 10

» q(end)ans =

10

» q(end-4 : end)ans =

6 7 8 9 10

» q(endq(end-2 : end)ans =

8 9 10

Page 30: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 30

sum : somme des composants d’un vecteur

» sum(x) % x=[4 3]; ans=

7

prod : produit des composants d’un vecteur

» prod(y)=ans=

70

Fonctions opérant sur des vecteurs

Page 31: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 31

sqrt : racines carrées des composants d’un vecteur

» sqrt(x)ans=

2.000 1.7321

mean : moyenne des composantes d’un vecteur

» mean(x)ans=

2.3333

Fonctions opérant sur des vecteurs

Page 32: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 32

find : recherche les indices et les valeurs des éléments non nuls

» X = [1 0 4 -3 0 0 0 8 6]; indices = find(X)indices =

1 3 4 8 9

» find(X > 2)ans=

3 8 9

Fonctions opérant sur des vecteurs

Page 33: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 33

sort : ordonne les éléments du vecteur x par ordre croissant

» sort(x) % x=[3 5 1 9 2 -2 51 -8]ans=

-8 -2 1 2 3 5 9 51 linspace : génère un vecteur de N points équiespacés

entre deux points donnés

» y = linspace(0,1,6)y =

Columns 1 through 60 0.2000 0.4000 0.6000 0.8000 1.0000

Fonctions opérant sur des vecteurs

Page 34: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 34

fliplr : fait tourner le vecteur de droite à gauche

» fliplr(x) % x=[3 5 1 9 2 -2 51 -8]ans=

-8 51 -2 2 9 1 5 3

flipud : fait tourner le vecteur du bas vers le haut

» y = flipud([1; 2; 9])y =

921

Fonctions opérant sur des vecteurs

Page 35: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 35

Page 36: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 36

Pour saisir une matrice, les lignes sont séparées par un point virgule

» x= [0 1 2; 3 4 5]x=

0 1 23 4 5

Ou bien en séparant les lignes par des retours à la ligne

» x= [0 1 2; 3 4 5 ]

Matrices ou tableaux à 2 dimensions

Page 37: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 37

Dimensions d’une matrice x:

» [ m n ]=size(x)m=

2n=

3 Accès à un élément d’une matrice

» x(2,1) ans=

3

Matrices ou tableaux à 2 dimensions

Page 38: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 38

Matrice identité (matrice carrée) :» I=eye(3)

I=1 0 00 1 00 0 1

Matrice unité

» U=ones(2,3) U=

1 1 11 1 1

Matrices particulières

Page 39: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 39

Matrice nulle :

» Z=zeros(3)Z=

0 0 00 0 00 0 0

Matrice aléatoire (les éléments sont générés aléatoirement entre 0 et 1)

» A=rand(1,4) A=

0.6597 0.1458 0.2564 0.2131

Matrices particulières

Page 40: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 40

» a= 1:5a=

1 2 3 4 5

» x= 0: pi/4: pi x=

0 0.7854 1.5708 2.3562 3.1416

» Em= 15: -3: 1 Em=

15 12 9 6 3

Formes particulières d’initialisation

Page 41: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 41

Formes particulières d’accès» G=[2 1 6 -5; 3 9 11 4; 6 8 1 36; -1 5 -7 9; 9 5 3 1 ];

» G(2:3,4)’ ans=

4 36

» G([1 3 5],[2 3 4])ans=

1 6 -58 1 365 3 1

Page 42: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 42

Page 43: Cours matlab gpe

Exemple 1

Prof. Abdellah ADIB 43FI-GPE 2011-2012

Donner les valeurs de la fonction suivante

y = (x+2)2(x3+1)

pour des valeurs de x entre -1 et 3 avec un pas de 0.1

Solution :

» x=[-1:0.1:3];

» y = .*((x+2) ).^ 2 ((x.^3)+1);

Page 44: Cours matlab gpe

Exemple 2

Prof. Abdellah ADIB 44FI-GPE 2011-2012

Construire la fonction

z = s2/(s3 + 1)

pour 200 valeurs de x entre -3 et 40.

Solution :

» s=linspace(-3,40,200);

» y = s.^2./(s.^3 + 1);

Page 45: Cours matlab gpe

Exemple 3

Prof. Abdellah ADIB 45FI-GPE 2011-2012

Donner 50 valeurs du polynôme

y = x4 + x2 - 3

Entre x = -2 et x = 2.

Solution :

» x=linspace(-2,2,50);

» c = [1 0 1 0 -3];

» y = polyval(c,x);

Page 46: Cours matlab gpe

Exemple 4

Prof. Abdellah ADIB 46FI-GPE 2011-2012

Soit la matrice F=[1 2 3; 4 5 6; 7 8 9], éliminer la deuxième colonne puis la première ligne

Solution :

» F(:,2) = []

F=1 2 34 5 67 8 9

» F(1,:) = []

F=4 5 67 8 9

Page 47: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 47

Nombres complexes» i^2ans=

-1» j^2ans=

-1» a=3+2ia =

3.0000 + 2.0000i» w=r+exp(2*j*teta);» w=[1 2 8.3 sqrt(6)]+0,3*i*ones(1,4);

Page 48: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 48

Fonctions d'arrondisround(x) : entier le plus proche de x,

» round(1.8356) » round(3.4356)

ans= ans=

2 3

floor(x) : arrondi par défaut,

» floor(3.9)

ans=

3

Page 49: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 49

Fonctions d'arrondisceil(x) : arrondi par excès,

» ceil(1.8356) » ceil(3.4356) ans= ans=

2 4

fix(x) : arrondi par défaut un réel positif et par excès un réel négatif.

» fix(3.9) » fix(-2,1) ans= ans=

3 -2

Page 50: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 50

Format : La manière d’apparition des nombres » s = [1/2 1/3 pi];» format short; ss =

0.5000 0.3333 3.1416» format long; ss =

0.50000000000000 0.33333333333333 3.14159265358979» format rat; ss =

1/2 1/3 355/113 » format bank; ss =

0.50 0.33 3.14

Page 51: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 51

Page 52: Cours matlab gpe

Exemple

Prof. Abdellah ADIB 52FI-GPE 2011-2012

Créer une matrice 4x2 tous zéros et la stocker dans une variable. Puis, remplacer la deuxième rangée dans la matrice par un vecteur se composant des 3 et des 6.

Trouver une manière efficace de reproduire la matrice suivante :

mat =7 8 9 1012 10 8 6

Puis, donner les expressions qui, pour la matrice mat de,

1. se rapporter à la deuxième rangée entière2. se rapporter aux deux premières colonnes

Page 53: Cours matlab gpe

Exemple

Prof. Abdellah ADIB 53FI-GPE 2011-2012

Créer un vecteur de variable vect ; il peut avoir n'importe quelle

longueur. Puis, écrire les instructions qui permettent de stocker

la première moitié du vecteur dans une variable et la deuxième

moitié dans une autre variable. S'assurer que vos instructions

d'affectation sont générales, et opèrent correctement même si

le vect a un nombre pair ou impair d'éléments. (Conseil :

Employer une fonction d'arrondis telle que la difficulté.).

Page 54: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 54

Page 55: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 55

L'éditeur de scripts MATLAB

Page 56: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 56

%*****************************%%* pivot_x.m *%%*****************************%echo offx=[1 2 3 4]x=fliplr(x)» pivot_xx =

1 2 3 4x =

4 3 2 1

Fonctions “usager” de type “script”Fonction sans argument

Variables globales

Page 57: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 57

Fonctions “usager” de type “function”Les fonctions m-files sont des vrais sous programmes; puisque elles utilisent des arguments I et/ou O.

Variables autres que les I/O sont locales à la fonction

Syntaxe générale :

function [arguments de sortie] (arguments d’entrée)Nom_fonction=

Page 58: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 58

function y = plptnb(n1,n2)% Retourne le plus petit de n1 ou n2%Notes : Un exemple de fonctiony = n2;if n1 < n2

y=n1;end;Return;

Exemple de “function”

» a=-2; b=3;» plptnb(a,b) » ans =

-2

Un seul argument desortie, pas de [ ]

Arguments d’entrée

Nom dela fonction

1er ligne, doit contenir la définition de la

fonction

1- Commentaire, qui apparaîtra en utilisant help2- Les informations dans Notes n’apparaîtrons jamais

Le corps de la fonction

» plptnb(-2, 3) » ans =

-2

Utilisation de la fonction

Page 59: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 59

Organisation d'un programmeToute bonne programmation repose sur l'écriture d'un script principal qui fait appel à des fonctions autonomes. Cela permet :

• d'améliorer la lisibilité

• de tester indépendamment des parties de programmation

• d'augmenter le degré de généralité (utilisation d'une même fonction à divers endroits du programme, voire réutilisation des fonctions dans d'autres applications)

Page 60: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 60

Comme dans l'exemple ci-dessus, le nom du script attaché à une fonction doit obligatoirement porter le nom de la fonction avec l'extension.m.

Structure d’un Bon programme

Page 61: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 61

Page 62: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 62

ExemplesÉcrire une fonction qui calculera le volume d'une sphère creuse, on adoptera la formule suivante : 43où est le rayon intérieur et est le rayon extérieur.

Écrire une fonction qui permet de construire la matrice suivante :

2 2 2 2 2 2 2 3 3 3 3 3 3 3 7 7 7 7 7 7 7 9 9 9 9 9 9 9 4 4 4 4 4 4 4

Page 63: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 63

Page 64: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 64

Les opérateurs logiques combinent des expressions booléennes :

En terme numérique, tout nombre non nul est considéré comme vrai

Opérateurs logiques

Page 65: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 65

& : ET logique élément par élément

| : OU logique élément par élément

~ : NON (négation logique de l’opérande)

Liste des opérateurs

Page 66: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 66

ET logique Cas de deux expressions logiques

x = 1; y = 3;w = -1; z = 10;(x>y) & (w>z) (x>y) & (w<z) (x<y) & (w<z) x & y est équivalent à (x ~ =0)&(y ~= 0)

Cas de deux vecteurs

u = [1 0 2 3 0 5]; v = [5 6 1 0 0 7];u & v 1 0 1 0 0 1

(VRAI FAUX VRAI FAUX FAUX VRAI)

0 (FAUX)0 (FAUX)1 (VRAI)

1 (VRAI)

Page 67: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 67

Opérateur OU Cas de deux expressions logiques

x = 1; y = 3;w = -1; z = 10;(x>y) | (w>z) (x>y) | (w<z) (x<y) | (w<z) x | y (est équivalent à (x ~ =0) | (y ~= 0))

Cas de deux vecteurs

u = [1 0 2 3 0 5]; v = [5 6 1 0 0 7];u | v 1 1 1 1 0 1

(VRAI VRAI VRAI VRAI FAUX VRAI)

0 (FAUX)1 (VRAI)1 (VRAI)

1 (VRAI)

Page 68: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 68

Opérateur NON (négation) Négation d’une expression logique

x = 1; y = 3;~(x>y)~(x<y)~(x==y)

Négation d’un vecteur

~u (u = [1 0 2 3 0 5])équivalent a u == 00 1 0 0 1 0

(FAUX VRAI FAUX FAUX VRAI FAUX)

1 (VRAI)0 (FAUX)1 (VRAI)

1 (VRAI)

Négation d’un scalaire

~y équivalent a y == 0

Page 69: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 69

Page 70: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 70

Les instructions de contrôle Les principales instructions de contrôle sous Matlab sont :

Instructions IF … ELSEIF … ELSE …Instructions sélectives

Instructions SWITCH … CASE … OTHERWISE…Chois ventilés

Instructions WHILE … FOR … (Boucles)Instructions répétitives

Instructions CONTINUE … Passage à l’itération suivante dans une boucle

Instructions BREAK … Arrêt de l’exécution d’une boucle

Page 71: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 71

Page 72: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 72

Instruction sélective IF La sélection if

Syntaxe :

if condition

séquence d’instructions Corps de la sélection

end

Mots clé

Fin de la sélection

Expression logique dont le résultat est soit 1 (vrai) ou 0 si (faux),

Page 73: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 73

Instruction sélective IF … ELSE La sélection if … else … end

Syntaxe :

if condition

séquence d’instructions 1 Action

else

séquence d’instructions 2 Alternativeend

Mots clé

Fin de la sélection

Expression logique dont le résultat est soit 1 (vrai) ou 0 si (faux),

Page 74: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 74

Instruction sélective IF … ELSEIF … ELSE La sélection if … elseif … else … end

Syntaxe :

if condition

séquence d’instructions 1 Action

elseif

séquence d’instructions 2 Alternative 1Else

séquence d’instructions 3 Alternative 2end

Page 75: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 75

ExempleEcrire une fonction qui cherche la mention en fonction de la moyenne obtenue

function m = mention(moy)% Mention en fonction de la moyenne

if moy>=16m=’très bien’;

elseIf moy>=14m=’bien’;

elseIf moy>=12m=’assez bien’;

elseIf moy>=10m=’passable’;

elsem=’Ajourné’;

end

Page 76: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 76

Page 77: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 77

Instruction répétitive FOR La sélection for … end

Syntaxe :

for i = ind_debut : ind_fin

séquence d’instructions Corps de la boucle

end

Mots clé

Fin de la boucle

i variable appelée indice de la boucle

Page 78: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 78

Instruction répétitive SWITCH La sélection switch … case c1 … case cn … otherwise … end Syntaxe :

switch varcase c1

séquence d’instructions 1. . . n choix ventiléscase cn

séquence d’instructions notherwise

séquence d’instructions par défaut end

var expression ou variable à évaluer, c1 … cn constantes représentant les possibilités d’évaluation de var.

Page 79: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 79

Page 80: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 80

Graphiques» x=0:0.05:(2*pi); » y=exp(-x).*sin(x);» plot(x,y);

Page 81: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 81

Graphe plus lisible» axis([0 (2*pi) -0.1 0.4]);» title ('Exemple de graphique');» xlabel(‘Abscisse');» ylabel(‘Ordonnee');» grid;

Exemple de graphique

Ord

onne

e

Abscisse

Page 82: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 82

Graphe avec plusieurs courbes superposées » y1=exp(-2*x).*sin(x);» y2=exp(-3*x).*sin(x);» y3=exp(-4*x).*sin(x);» plot(x,y,'-',x,y1,'-.',x,y2,'*',x,y3,'o‘ );

Page 83: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 83

Graphe avec plusieurs courbes séparées » subplot(2,2,1), plot(x,y), title('y');» subplot(2,2,2), plot(x,y1), title('y1');» subplot(2,2,3), plot(x,y2), title('y2');» subplot(2,2,4), plot(x,y3), title('y3');

Page 84: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 84

Graphe 3-D Supposons, par exemple que l'on veuille représenter la surface définie par la fonction z=sin(xy) sur le carré suivant [-p/2,p/2]x[-p/2,p/2] à l'aide d'une grille de points 31x31.

[xi,yi]=meshgrid(-pi/2:pi/30:pi/2); %(génération d'une grille régulière)

zi=sin(xi.*yi);surf(xi,yi,zi,zi); %(affichage de la surface)

On utilise la séquence de commandes :

Page 85: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 85

>> Variable MATLAB matrice>> Opérateurs “matrix” et “array”>> Fichiers exécutables “.m” type “script” et “function”; >> Fichiers binaires “.mat” pour échange de données>> Extensions (toolboxes)

À retenir

Page 86: Cours matlab gpe

Prof. Abdellah ADIB FI-GPE 2011-2012 86

RESTE MAINTENANT A APPRENDRE

LA VRAI PROGRAMMATION

SOUS MATLAB

!!!!!!!!!