OUTILS DE PROGRAMMATION
Mr. BENDIB. IMAA, 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 :
S’écrivent sous la forme :
[1 2 3 4 ] [1; 2; 3; 4 ] [4 5 6 ; 7 8 9 ; 10 11 12 ] :
1 1 2 3
2 4 5 6
1 2 3 4 3 7 8 9
4 10 11 12
2. Tableaux de nombres (Suite)>> [1 2 3 4 ]
ans =
1 2 3 4
>> [1; 2; 3; 4 ]
ans =
1234
>> [4 5 6 ; 7 8 9 ; 10 11 12 ]
ans =
4 5 67 8 910 11 12
2. Tableaux de nombres (Suite)
Remarque : Toutes les lignes doivent contenir le mêmenombre d’éléments,
>> [1 2 ; 1 2 3]??? Error using ==> vertcatCAT 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’ontpas à être déclarées, leur nature se déduisantautomatiquement 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. AffectationLe 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 : Convertir la variable à un type de données différent.
double : Conversion en double précision
int8, int16, int32, int64 : Conversion en entier signé.
single : Conversion en double precision
typecast : Conversion de types de données sans modifier les
données
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 ?
Top Related