OUTILS DE PROGRAMMATION Mr. BENDIB. I MAA, LAMIS Laboratory, Université de Tébessa
Chapitre 2
Les objets de MATLAB
Valeurs littérales
Les valeurs littérales sont les valeurs qu on peut directement taper au clavier et qui peuvent être affectées à une variable. 1. Nombres Les nombres réels et entiers (MATLAB ne distingue pas entre réels et entiers) sont écrits sous les formes décimales ou scientifiques usuelles : Exemple : 2, 3.214, 1.21E33, 2.5E-1 Les nombres complexes sont écrits sous la forme a + bi Exemple : 1+2i
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) ; les différentes lignes doivent comporter le même nombre d éléments et sont séparées par des points-virgules.
2. Tableaux de nombres (Suite) Exemple Les tableaux : 1 1 2 3 2 4 5 6 1 2 3 4 3 7 8 9 4 10 11 12 S écrivent sous la forme : [1 2 3 4 ] [1; 2; 3; 4 ] [4 5 6 ; 7 8 9 ; 10 11 12 ] :
2. Tableaux de nombres (Suite) >> [1 2 3 4 ] ans = 1 2 3 4 >> [1; 2; 3; 4 ] ans = 1 2 3 4 >> [4 5 6 ; 7 8 9 ; 10 11 12 ] ans = 4 5 6 7 8 9 10 11 12
2. Tableaux de nombres (Suite) 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 qu une seule colonne ; liste ou vecteur-ligne un tableau de format (1, n) i.e. ne comportant qu une seule ligne ; tableau un tableau au sens commun du terme, c est `a dire une structure organisée en lignes et colonnes.
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 : 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
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
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 l opé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 d eléments). Exemple : >> ['abc' ; 'abcd']??? Error using ==> vertcat CAT arguments dimensions are not consistent.
Variables
Une caractéristique de MATLAB est que les variables n ont pas à être déclarées, leur nature se déduisant automatiquement de l objet 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.
3. Identificateurs (Suite) Voici quelques identificateurs prédéfinis : ans : Résultat de la dernière évaluation pi : 3,416.. eps : inf{ 0 tels que 1 < 1 + } inf : Infini (1/0) NaN : Not a Number (0/0) i, j : i et j représentent tous deux le nombre imaginaire unité ( 1) realmin : plus petit nombre réel positif realmax : plus grand nombre réel positif
2. Affectation Le symbole d affectation de valeur à une variable est le caractère =. Exemple : >> a = [1 2 3 4 ] a = 1 2 3 4 >> a = abc a = abc L exemple ci-dessus montre bien que dans MATLAB les variables ne sont ni déclarées ni typées.
Les commandes save, load et clear - fichiers.mat
Ces commandes permettent d intervenir directement sur l environnement de travail. save permet de sauver tout ou partie de l espace de travail sous forme de fichiers binaires appelés mat-files ou fichiers.mat : save : enregistre la totalité de l espace de travail dans le fichier matlab.mat ; save nom de fichier : l espace de travail est enregistre dans le fichier nom de fichier ;
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é; load permet d ajouter le contenu d un fichier.mat à l espace de travail actuel ;
Le typage de données
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 n est pas obliger de définir a l'avance le type de chaque variable et d'être coincé tout au long de l exé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.
Il est cependant possible de forcer Matlab a faire des conversions explicites. Fonctions de conversions : cast double : Convertir la variable à un type de données différent. : Conversion en double précision int8, int16, int32, int64 : Conversion en entier signé. single typecast données : Conversion en double precision : Conversion de types de données sans modifier les uint8, uint16, uint32, uint64 : Conversion en entier non signé.
Fonctions de conversions >> a=int8(5) a = 5 >> b=uint8(5) b = 5 >> c=double(5) c = 5 >> d=single(5) d = 5
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
Fonctions de conversions >> b=uint8(5) b = 5 >> b=b*26 b = 130 >> b=uint8(16) b = 16 >> b=b*b b = 255
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
Fonctions de conversion string vers nombre: base2dec : Convertir une chaine de base N vers le décimale bin2dec : Convertir une chaine binaire vers le décimale cast : Convertir la variable à un type de données différent. hex2dec : Convertir une chaine hexadécimale vers le décimale hex2num : Convertir une chaine hexadécimale vers un reel double str2double : Convertir une chaine de caractères vers un reel double
Fonctions de conversion string vers nombre: >> base2dec('111',3) ans = 13 >> bin2dec('010111') ans = 23 >> hex2dec('3ff') ans = 1023 >> hex2num('bff') ans = -1
Fonctions de conversion string vers nombre: >> b='1'; >> a=str2double('1') a = 1 >> whos Name Size Bytes Class Attributes a 1x1 8 double b 1x1 2 char >> str2double('123.45e7') ans = 1.2345e+009
VOUS AVEZ DES QUESTIONS?