English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Numériques MATLAB

MATLAB prend en charge divers types de données numériques, y compris les entiers signés et non signés, ainsi que les nombres à virgule simple et double. Par défaut, MATLAB stocke toutes les données numériques sous forme de nombres à virgule double.

Vous pouvez choisir de stocker n'importe quel nombre ou tableau de nombres en tant qu'entier ou nombre à virgule simple.

Tous les types de données numériques supportent les opérations d'array de base et les opérations mathématiques.

convertir en divers types de données numériques

MATLAB fournit les fonctions suivantes pour convertir en divers types de données numériques-

fonctionfonction
doubleconvertir en nombre à virgule double
singleconvertir en nombre à virgule simple
int8convertir en8de bits d'entiers signés
int16convertir en16de bits d'entiers signés
int32convertir en32de bits d'entiers signés
int64convertir en64de bits d'entiers signés
uint8convertir en8de bits d'entiers sans signe
uint16convertir en16de bits d'entiers sans signe
uint32convertir en32de bits d'entiers sans signe
uint64convertir en64de bits d'entiers sans signe

Exemple

Créez un fichier de script et entrez le code suivant-

x = single([5.32 3.47 6.28)) .* 7.5
x = double([5.32 3.47 6.28)) .* 7.5
x = int8([5.32 3.47 6.28)) .* 7.5
x = int16([5.32 3.47 6.28)) .* 7.5
x = int32([5.32 3.47 6.28)) .* 7.5
x = int64([5.32 3.47 6.28)) .* 7.5

Lors du lancement du fichier, il affiche le résultat suivant-

x = 
   39.900   26.025   47.100
x = 
   39.900   26.025   47.100
x = 
   38  23  45
x = 
   38  23  45
x = 
   38  23  45
x = 
   38  23  45

Exemple

Laissons-nous étendre un peu l'exemple précédent. Créez un fichier de script et entrez le code suivant-

x = int32([5.32 3.47 6.28)) .* 7.5
x = int64([5.32 3.47 6.28)) .* 7.5
x = num2cell(x)

Lors du lancement du fichier, il affiche le résultat suivant-

x = 
   38  23  45
x = 
   38  23  45
x =  
{
   [1,1] =  38
   [1,2] =  23
   [1,3] =  45
}

valeur minimale et maximale entiers

fonctionintmax()etintmin()Retourne la valeur maximale et minimale exprimée sous forme de type de données entier pour toutes les types.

Ces deux fonctions prennent en paramètre un type de données entier, par exemple intmax(int8) ou intmin(int64) et retourne la valeur maximale et minimale exprimée sous forme de type de données entiers.

Exemple

Les exemples suivants expliquent comment obtenir les valeurs minimales et maximales des entiers. Créez un fichier de script et écrivez le code suivant-

%Afficher la valeur minimale et maximale des entiers signés
str = 'La plage pour int8 est:
	%d à %d ';
sprintf(str, intmin('int8), intmax('int8))
str = 'La plage pour int16 est:
	%d à %d ';
sprintf(str, intmin('int16), intmax('int16))
str = 'La plage pour int32 est:
	%d à %d ';
sprintf(str, intmin('int32), intmax('int32))
str = 'La plage pour int64 est:
	%d à %d ';
sprintf(str, intmin('int64), intmax('int64))
 
%Afficher la valeur minimale et maximale des entiers sans signe
str = 'La plage pour uint8 est:
	%d à %d ';
sprintf(str, intmin('uint8), intmax('uint8))
str = 'La plage pour uint16 est:
	%d à %d ';
sprintf(str, intmin('uint16), intmax('uint16))
str = 'La plage pour uint32 est:
	%d à %d ';
sprintf(str, intmin('uint32), intmax('uint32))
str = 'La plage pour uint64 est:
	%d à %d ';
sprintf(str, intmin('uint64), intmax('uint64))

Lors du lancement du fichier, il affiche le résultat suivant-

ans = La plage pour int8 est :
	-128 to 127 
ans = La plage pour int16 est :
	-32768 to 32767 
ans = La plage pour int32 est :
	-2147483648 to 2147483647 
ans = La plage pour int64 est :
	0 à 0 
ans = La plage pour uint8 est :
	0 à 255 
ans = La plage pour uint16 est :
	0 à 65535 
ans = La plage pour uint32 est :
	0 à -1 
ans = La plage pour uint64 est :
	0 à 18446744073709551616

valeur minimale et maximale en virgule flottante

fonctionrealmax()etrealmin()Retourne la valeur maximale et minimale exprimées sous forme de nombre à virgule flottante.

Lorsque vous appellez deux fonctions avec le paramètre "single", ces deux fonctions retournent les valeurs maximales et minimales que vous pouvez représenter avec le type de données en précision simple ; lorsque vous les appellez avec le paramètre "double", ces deux fonctions retournent les valeurs maximales et minimales que vous pouvez représenter avec le type de données en précision double.

Exemple

Les exemples suivants montrent comment obtenir les valeurs minimales et maximales des nombres en virgule flottante. Créez un fichier de script et écrivez-y le code suivant-

%Affichage du minimum et du maximum single précision
%Nombre en virgule flottante
str = 'La plage pour single est :\n\t%g à %g et\n\t%g à %g';
sprintf(str, -realmax('single'), -realmin('single'), ...
   realmin('single'), realmax('single'))
%Affichage du minimum et du maximum double précision
%Nombre en virgule flottante
str = 'La plage pour double est :\n\t%g à %g et\n\t%g à %g';
sprintf(str, -realmax('double'), -realmin('double'), ...
   realmin('double'), realmax('double'))

Lors du lancement du fichier, il affiche le résultat suivant-

ans = La plage pour single est :                                                  
        -3.40282e+38 to -1.17549e-38 and                                        
         1.17549e-38 to  3.40282e+38                                            
ans = La plage pour double est :                                                  
        -1.79769e+308 to -2.22507e-308 and                                      
         2.22507e-308 to  1.79769e+308