Variables:

Un programme informatique manipule les données à l’aide des variables. Sous MATLAB, la déclaration des variables n’est pas nécessaire. Rappelons qu'une variable est constituée d’un nom symbolique associé à une valeur.   Lorsque MATLAB trouve une nouvelle variable, il la crée et lui alloue un espace mémoire approprié. Si la variable existe déjà, son contenu est remplacé et un nouvel  espace mémoire lui est de nouveau alloué.

 

Exemple :

Pour créer la variable  n, et lui allouer la valeur 3, on tapera :

>> n = 3

La fenêtre de commandes affichera :

n    = 

     3

Cette commande crée une matrice 1 ligne, 1 colonne appelée  n, puis stocke la valeur 3 dans la variable crée.

 

Attention! MATLAB  est sensible à la casse, c'est-à-dire qu’il fait la distinction entre les majuscules et les minuscules.  Ainsi   N  et n sont deux variables distinctes. La nouvelle variable crée apparaît dans la fenêtre de travail (Workspace) et la commande que l’on vient de saisir est enregistrée dans   l'Historique des commandes (Command History).

 

Autre exemple:  créer la variable a ayant pour valeur 7 :

>> a = 7 ;

Comme cela a été dit dans le chapitre précédent, le  « ; »  à la fin de la ligne de commande indique qu’on ne souhaite pas afficher le résultat de la commande.  Mais la variable a  est  crée dans le "Workspace".

 

A partir de là, on peut effectuer des opérations :

>> n*a    

Donnera:

ans  =  21

 

Dans la fenêtre des commandes, on peut rappeler les commandes mémorisées dans l’historique des commandes avec les flèches de défilement haut et bas du clavier.

 

On peut aussi créer une variable et lui assigner directement le résultat d’une opération.

 

Exemple :

>> x =  sqrt(25)   % calcule la racine carrée de 25

Donnera : 

    x  = 5

 

On peut faire des assignements de plusieurs variables sur une seule ligne.   Par exemple, au lieu d’écrire :

>> a = 8 ;

>> b = 3 ;

>> c = a * b

Sachant qu’on obtient :

c = 24

On peut aussi écrire :

>> a = 8 ; b = 3 ;

>> c = a * b

Et on obtiendra le même résultat.

Types de données dans MATLAB 

Tout type de données est stocké dans MATLAB sous forme de matrice, dont la dimension peut varier  de 0 ligne × 0 colonne, à n lignes × m colonnes ; n et m pouvant être  très grands.

Le tableau ci-après regroupe quelques types de données couramment rencontrés sous MATLAB :

 

Type de donnée         

Description

int8

Entier 8 bits signé

uint8

Entier 8 bits non signé

int16

Entier 16 bits signé

uint16

Entier 16 bits non signé

int32

Entier 32 bits signé

uint32

Entier 32 bits non signé

int64

Entier 64 bits signé

uint64

Entier 64 bits non signé

single

Nombre numérique en simple précision

double

Nombre numérique en double précision

logical

Valeur booléenne 0 ou 1 (FAUX ou VRAI)

char

Caractères (les chaînes sont stockées sous forme de tableau de caractères)

cell  array

Tableau indexé capable de stoker des données de différents types

structure

Ce sont des structures comme celles définies dans le langage C

function handle

Pointeur vers une fonction

user class

Objet construit à partir d’une classe définie

java classes

Objet construit à partir d’une classe Java

 

Par défaut, MATLAB  stocke les données numériques dans un format double précision (double) ; il peut être nécessaire de faire des conversions sur les données avant de les stocker.

 

Exemple :

On veut stocker dans  la variable x la valeur 265 sous forme d’un entier 16 bits signé ; on aura la commande : 

>> x = int16(265)

x = 265

 

La  variable

      >>  a = 349,751 ;

Codé comme un entier signé sur 16 bits donnera :

>> int16(a)

ans  =  349

Les conversions de types

Les types de donnés vus précédemment peuvent être convertis en types différents de celui dans lequel ils ont été crées au départ.

Le tableau ci-après donne quelques fonctions prédéfinies MATLAB de conversions de types:

 

Fonction                    

Rôle

char

Converti un caractère en une chaîne

int2str

Converti un nombre entier en chaîne de carctères

mat2str

Converti une matrice en chaîne de caractère

num2str

Converti un nombre en une chaîne de caractères

str2double

Converti une chaîne en nombre double précision

str2num

Converti une chaîne de caractères en nombre

native2unicode

Converti des octets numériques en caractères unicode

unicode2native

Converti des caractères unicodes en octets numériques

base2dec

Converti un nombre chaîne en base N en un nombre décimal

bin2dec

Converti un nombre binaire en décimal

dec2base

Converti un nombre décimal en une chaîne de caractères de base N

dec2bin

Converti un nombre décimal en binaire

dec2hex

Converti un nombre décimal en hexadécimal

hex2dec

Converti un nombre hexadécimal en décimal

hex2num

Converti un nombre sous forme de chaîne de caractères  hexadécimal en un nombre décimal double précision

num2hex

Converti des nombres simple et double précision en chaîne de caractères hexadécimale

cell2mat

Converti un tableau cellules  en un tableau de numériques

cell2struct

Converti un tableau cellules et tableau de structures

cell2str

Crée un tableau de chaînes à partir d’une chaîne de caractères

mat2cell

Converti un tableau en tableau cell pouvant avoir une taille différente

num2cell

Converti un tableau en un tableau cell

struct2cell

Converti une structure en un tableau de cellules

 

Exemple de conversion :

La fonction prédéfinie disp()  permet d’afficher des chaînes de caractères.  On veut par exemple afficher la phrase suivante « Yoda aura 800 ans cette année »,  on peut procéder de la façon suivante :

>> nom = 'Yoda' ; age = 800 ;

>> P = [nom, 'aura',  num2str(age),  'ans',  'cette année'] ;

>> disp(P)

Affichera

Yoda aura 800 ans cette année

 

Autre exemple :

>> hex2dec('2B9')

Donnera :

ans  =  697

 

Identification du type de données 

MATLAB propose un ensemble de fonctions variées pour identifier le type de variables; quelques unes sont données dans le tableau ci-après :

 

Fonction        

Description

ischar

Pour savoir si la variable est un tableau de caractères

isfloat

Pour savoir si la variable est tableau de nombres en virgules flottante

isinteger

Pour savoir si la variable est un tableau de nombres entiers

isnumeric

Pour savoir si la variable est un tableau de nombres numériques

isreal

Pour savoir si la variable est un tableau de nombres reels

isstr

Pour savoir si la variable est un tableau de caractères

whos

Donne la liste de toutes les variables qui sont dans la fenêtre de travail, leur taille et leur type

 

Exemple :

>> a = 9 ;

>> ischar(a)

ans =

       0

Dans cet exemple, a  n’est pas un caractère ; donc le résultat est « faux » soit 0.

>> isfloat(a)

ans =

       1

On a un résultat du test VRAI car le nombre numérique a peut  s’écrire en virgule flottante.