La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

O UTILS DE P ROGRAMMATION Mr. BENDIB. I MAA, LAMIS Laboratory, Université de Tébessa.

Présentations similaires


Présentation au sujet: "O UTILS DE P ROGRAMMATION Mr. BENDIB. I MAA, LAMIS Laboratory, Université de Tébessa."— Transcription de la présentation:

1 O UTILS DE P ROGRAMMATION Mr. BENDIB. I MAA, LAMIS Laboratory, Université de Tébessa

2 Chapitre 3

3 La Programmation sous MATLAB

4 Less m-Files

5 Un m-file est un fichier contenant une suite d'instructions que Matlab peut exécuter. Un m-file peut aussi être utilisé comme fichier de librairie contenant des fonctions définies par l'utilisateur. Pour créer un m-file, utilisez le menu Filenew Blank M-file File new Blank M-file.

6

7 1.Les Operateurs de bases: Ces operateurs sont valables pour les scalaires comme pour les matrices. Matlab exécutera la bonne opération en fonction du type des termes de l'operateur.

8 2.Les Operateurs Logiques:

9 3. Entrées / sorties: Parmi les commandes qui permettent l'interaction avec l'utilisateur lors de l'exécution script d'un on trouves : input L'utilisateur peut saisir un nombre que le script pourra alors utiliser par la commande input. disp Dans le sens inverse la commande disp permet d'afficher des variables a l'utilisateur. Exemple Exemple n = input('Saisissez un nombre :') ; Saisie de l'utilisateur disp(n) ; Sortie vers l'affichage Matlab

10 4. Le contrôle de lexécution: 4.1. Instruction de choix IF L'instruction IF est une instruction de choix. En fonction que sa condition sera évalué vrai ou faux. La commande exécutera un groupe d'instructions ou l'autre.

11 4. Le contrôle de lexécution: 4.1. Instruction de choix IF Exemple 01 Exemple 01 clc clear a=input (' Donner la valeur de a '); b=input (' Donner la valeur de b '); if a>b disp(a) else disp(b) end

12 4.1. Instruction de choix IF Exemple 02 Exemple 02 n = 5 ; m = 8 ; if (n > 0) % Condition 1 if ( n > 5 && m < 0) % Condition 1 et Condition 2 disp ('ici 1') % Affichage elseif (n == 5) % Si Condition 1 et non Condition 2 et Condition 3 disp ('ici 2') % Affichage else % Si Condition 1 et non Condition 2 et non Condition 3 disp('ici 3') % Affchage end % else % Si Condition 1 est faux disp('ici 4') % Affichage end %

13 4. Le contrôle de lexécution: 4.2. Instruction de choix SWITCH SWITCHIF IF L'instruction SWITCH est une instruction de choix comme le IF mais avec la particularité de pouvoir effectuer plus de branchements que le IF. SWITCH La commande SWITCH doit être utilisée dans le cas ou, par exemple, en fonction de la valeur d'une variable, on effectue différentes opérations. Attention toute fois, que le nombre de valeurs possibles de cette variable doit être restreint pour conserver une certaine lisibilité du code. breakSWITCH end Le mot clé break signifie que l'on arrête la commande SWITCH et que l'on transfert lexécution au mot clé end.

14 4.2. Instruction de choix SWITCH Exemple 01 Exemple 01 n = input('Pour sauver jack tapez 1,...Jessy tapez 2, Brian tapez 3 :') ; % Demande de saisie de l'utilisateur switch n case 1 % Si n vaut 1 disp('Jack est sauvé') break case 2 disp('Jessy est sauvé')% Si n vaut 2 break case 3 disp('Brian est sauvé')% Si n vaut 3 break otherwise disp('Vous n"avez sauvé personne') % Si n est différent de 1,2,3 end

15 4.2. Instruction de choix SWITCH Exemple 01 Exécution Exemple 01 Exécution Pour sauver jack tapez 1,...Jessy tapez 2, Brian tapez 3 :2 Jessy est sauvé Pour sauver jack tapez 1,...Jessy tapez 2, Brian tapez 3 :5 Vous n"avez sauvé personne >> >>

16 4. Le contrôle de lexécution: 4.3. Boucle FOR FOR La boucle FOR permet d'effectuer des opérations pour un nombre ditérations définis. FORWHILE L'avantage de la boucle FOR sur la boucle WHILE est sa simplicité décriture dans le cas d'un nombre ditérations définis et bien connu a l'avance (par exemple, le parcours d'un tableau). FOR lors de lexécution de la boucle FOR, la variable qui sert a boucler est accessible en lecture et en écriture. Il est donc possible de réduire ou d'augmenter le nombre ditérations au cours de lexécution de la boucle.

17 4.2. Boucle FOR Exemple 01 Exemple 01 % | Exemple 1 |||||||||||||||||||||||||- % for n = 1 :5 % Boucle pour n allant de 1 a 5 inclus par pas de 1 disp(n) % Affichage end % Fin de boucle % | Exemple 2 |||||||||||||||||||||||||- % for n = 8 :-2 :0 % Boucle pour n allant de 8 a 0 par pas de 2 disp(n) % Affichage end % Fin de boucle % | Exemple 3 |||||||||||||||||||||||||- % for n = [ ] % Boucle pour n égal chaque valeur du vecteur disp(n) % Affichage end % Fin de boucle

18 V OUS AVEZ DES QUESTIONS ?

19

20 4.2. Instruction de choix SWITCH Exemple 01 Exemple 01 n = input('Pour sauver jack tapez 1,...Jessy tapez 2, Brian tapez 3 :') ; % Demande de saisie de l'utilisateur switch n case 1 % Si n vaut 1 disp('Jack est sauvé') break case 2 disp('Jessy est sauvé')% Si n vaut 2 break case 3 disp('Brian est sauvé')% Si n vaut 3 break otherwise disp('Vous n"avez sauvé personne') % Si n est différent de 1,2,3 end

21 2.Tableaux de nombres Les tableaux de nombres réels ou complexes de dimension un ou deux suivent la syntaxe suivante : un tableau est délimité par des crochets ; les éléments sont entrés ligne par ligne ; les éléments appartenant à la même ligne sont séparés par des espaces (ou par des virgules) ; doivent comporter le même nombre déléments les différentes lignes doivent comporter le même nombre déléments et sont séparées par des points-virgules.

22 2.Tableaux de nombres ( Suite ) Exemple Les tableaux : Sécrivent sous la forme : [ ] [1; 2; 3; 4 ] [4 5 6 ; ; ] :

23 2.Tableaux de nombres ( Suite ) >> [ ] ans = >> [1; 2; 3; 4 ] ans = >> [4 5 6 ; ; ] ans =

24 2.Tableaux de nombres ( Suite ) Remarque Remarque : Toutes les lignes doivent contenir le même nombre déléments, >> [1 2 ; 1 2 3] ??? Error using ==> vertcat CAT arguments dimensions are not consistent. Dans la suite, on appellera : vecteur un tableau de format (n, 1) i.e. ne comportant quune seule colonne ; liste ou vecteur-ligne un tableau de format (1, n) i.e. ne comportant quune seule ligne ; tableau un tableau au sens commun du terme, cest `a dire une structure organisée en lignes et colonnes.

25 3. Caractères et chaines de caractères On écrit les caractères et les chaines de caractères, entre apostrophes : a, toto. Matlab considère les caractères comme des chaines de caractères de longueur un et identifie chaines de caractères et liste de caractères. Exemple Exemple : La liste de caractères [a b c d e] est identique à la chaines de caractères [abcde], Mieux encore, abcde ; [abc de] est identique à abcde

26 3.Caractères et chaines de caractères (Suite) >> ['a' 'b' 'c' 'd' 'e'] ans = abcde >> ['abcde'] ans = abcde >> 'abcde' ans = abcde >> ['abc' 'de'] ans = abcde

27 3. Caractères et chaines de caractères (Suite) Cet exemple donne un idée du rôle des crochets [ ]. Les crochets sont le symbole de lopérateur de concaténation : concaténation en ligne lorsque le séparateur est un espace ou une virgule ; concaténation en colonne lorsque le séparateur est un point-virgule comme dans les tableaux de nombres (il est alors nécessaire que les listes de nombres ou de caractères ainsi concaténées possèdent le même nombre deléments). Exemple Exemple : >> ['abc' ; 'abcd'] ??? Error using ==> vertcat CAT arguments dimensions are not consistent.

28 Variables

29 Une caractéristique de MATLAB est que les variables nont pas à être déclarées, leur nature se déduisant automatiquement de lobjet qui leur est affecté 1.Identificateurs Les règles de dénomination des variables sont très classiques : un identificateur débute par une lettre, suivie de lettres, de chiffres ou du caractère souligné (_) ; sa longueur est inferieure ou égale à 31 caractères ; les majuscules sont distinctes des minuscules.

30

31 2. Affectation = Le symbole daffectation de valeur à une variable est le caractère =. Exemple Exemple : >> a = [ ] a = >> a = abc a = abc Lexemple ci-dessus montre bien que dans MATLAB les variables ne sont ni déclarées ni typées.

32 Les commandes save, load et clear - fichiers.mat

33 Ces commandes permettent dintervenir directement sur lenvironnement de travail. save.mat save permet de sauver tout ou partie de lespace de travail sous forme de fichiers binaires appelés mat-files ou fichiers.mat : save : enregistre la totalité de lespace de travail dans le fichier matlab.mat ; save nom de fichier : lespace de travail est enregistre dans le fichier nom de fichier ;

34 save nom de variable... nom de variable : enregistre les variables indiquées (et les objets qui leurs sont associes) dans un fichier.mat qui porte le nom de la première variable ; save nom de fichier nom de variable... nom de variable : enregistre les variables dans le fichier dont le nom a été indiqué;.mat load permet dajouter le contenu dun fichier.mat à lespace de travail actuel ;

35 Le typage de données

36 Matlab effectue ce que l'on appel du typage dynamique. il adapte le type des operateurs de manière a permettre aux opérations de s'effectuer. Cette pratique a des avantages comme des inconvénients. Le programmeur nest pas obliger de définir a l'avance le type de chaque variable et d'être coincé tout au long de lexécution par ce type. Matlab effectue des conversions de type implicites sans le signaler, ce qui peut augmenter le temps d'exécution et parfois mener a des résultats surprenant.

37 Il est cependant possible de forcer Matlab a faire des conversions explicites. Fonctions de conversions : cast : cast : Convertir la variable à un type de données différent. double : double : Conversion en double précision int8, int16, int32, int64 : int8, int16, int32, int64 : Conversion en entier signé. single : single : Conversion en double precision typecast : typecast : Conversion de types de données sans modifier les données uint8, uint16, uint32, uint64 : uint8, uint16, uint32, uint64 : Conversion en entier non signé.

38 Fonctions de conversions >> a=int8(5) a = 5 >> b=uint8(5) b = 5 >> c=double(5) c = 5 >> d=single(5) d = 5

39 Fonctions de conversions >> whos Name Size Bytes Class Attributes a 1x1 1 int8 b 1x1 1 uint8 c 1x1 8 double d 1x1 4 single >> a=a*26 a = 127 >> a=a*2.5 a = 13

40 Fonctions de conversions >> b=uint8(5) b = 5 >> b=b*26 b = 130 >> b=uint8(16) b = 16 >> b=b*b b = 255

41 Fonctions de conversions >> h=uint8(266) h = 255 >> g = cast(h,'int8') g = 127 >> k= typecast(uint8(15), 'int8') k = 15 >> k= typecast(uint8(130), 'int8') k = -126

42 Fonctions de conversion string vers nombre: base2dec : base2dec : Convertir une chaine de base N vers le décimale bin2dec : bin2dec : Convertir une chaine binaire vers le décimale cast : cast : Convertir la variable à un type de données différent. hex2dec : hex2dec : Convertir une chaine hexadécimale vers le décimale hex2num : hex2num : Convertir une chaine hexadécimale vers un reel double str2double : str2double : Convertir une chaine de caractères vers un reel double

43 Fonctions de conversion string vers nombre: >> base2dec('111',3) >> base2dec('111',3) ans = >> bin2dec('010111') ans = >> hex2dec('3ff') ans = >> hex2num('bff') ans = -1 -1

44 Fonctions de conversion string vers nombre: >> b='1'; >> a=str2double('1') a = 1 >> whos Name Size Bytes Class Attributes Name Size Bytes Class Attributes a 1x1 8 double a 1x1 8 double b 1x1 2 char b 1x1 2 char >> str2double('123.45e7') ans = e e+009

45 V OUS AVEZ DES QUESTIONS ?


Télécharger ppt "O UTILS DE P ROGRAMMATION Mr. BENDIB. I MAA, LAMIS Laboratory, Université de Tébessa."

Présentations similaires


Annonces Google