Contenu principal

Convertir des valeurs numériques en texte

Cet exemple montre comment convertir des valeurs numériques en texte et les ajouter à des fragments de texte plus longs. Par exemple, vous souhaiterez peut-être ajouter à un tracé une étiquette ou un titre contenant un nombre décrivant une caractéristique de ce tracé.

Convertir des nombres en chaînes de caractères

Pour convertir un nombre en une chaîne de caractères qui le représente, utilisez la fonction string.

str = string(pi)
str = 
"3.1416"

La fonction string convertit un tableau numérique en tableau de chaînes de caractères de même taille.

A = [256 pi 8.9e-3];
str = string(A)
str = 1×3 string
    "256"    "3.141593"    "0.0089"

Vous pouvez spécifier le format du texte de sortie avec la fonction compose qui accepte des spécificateurs de format pour la précision, la largeur de champ et la notation exponentielle.

str = compose("%9.7f",pi)
str = 
"3.1415927"

Si l’entrée est un tableau numérique, compose renvoie un tableau de chaînes de caractères. Renvoyez un tableau de chaînes de caractères représentant des nombres avec une notation exponentielle.

A = [256 pi 8.9e-3];
str = compose("%5.2e",A)
str = 1×3 string
    "2.56e+02"    "3.14e+00"    "8.90e-03"

Ajouter des nombres à des chaînes de caractères

Le moyen le plus simple de combiner du texte et des nombres consiste à utiliser l’opérateur plus (+). Cet opérateur convertit automatiquement les valeurs numériques en chaînes de caractères lorsque les autres opérandes sont des chaînes de caractères.

Par exemple, tracez une onde sinusoïdale. Calculez la fréquence de l’onde et ajoutez une chaîne de caractères représentant cette valeur dans le titre du tracé.

X = linspace(0,2*pi);
Y = sin(X);
plot(X,Y)
freq = 1/(2*pi);
str = "Sine Wave, Frequency = " + freq + " Hz"
str = 
"Sine Wave, Frequency = 0.15915 Hz"
title(str)

Figure contains an axes object. The axes object with title Sine Wave, Frequency = 0.15915 Hz contains an object of type line.

Parfois, le texte existant est stocké dans des vecteurs de caractères ou des cell arrays de vecteurs de caractères. Là encore, l’opérateur plus convertit automatiquement ces types de données en chaînes de caractères lorsqu’un autre opérande est une chaîne de caractères. Pour combiner des valeurs numériques avec ces types de données, convertissez d’abord les valeurs numériques en chaînes de caractères puis utilisez plus pour combiner le texte.

str = 'Sine Wave, Frequency = ' + string(freq) + {' Hz'}
str = 
"Sine Wave, Frequency = 0.15915 Hz"

Codes de caractères

Si vos données contiennent des nombres entiers qui représentent des valeurs Unicode®, utilisez la fonction char pour convertir les valeurs en caractères correspondants. La sortie est un vecteur de caractères ou un tableau.

u = [77 65 84 76 65 66];
c = char(u)
c = 
'MATLAB'

La conversion des valeurs Unicode permet également d’inclure des caractères spéciaux dans le texte. Par exemple, la valeur Unicode du symbole degré est 176. Pour ajouter char(176) à une chaîne de caractères, utilisez plus.

deg = char(176);
temp = 21;
str = "Temperature: " + temp + deg + "C"
str = 
"Temperature: 21°C"

Valeurs hexadécimales et binaires

Vous pouvez représenter les valeurs hexadécimales et binaires de votre code avec du texte ou avec des littéraux. La méthode de représentation recommandée est l’écriture de littéraux. Vous pouvez écrire des littéraux hexadécimaux et binaires en utilisant respectivement les préfixes 0x et 0b. Cependant, il peut parfois être utile de représenter ces valeurs sous forme de texte avec les fonctions dec2hex ou dec2bin.

Par exemple, définissez un bit dans une valeur binaire. Si vous spécifiez la valeur binaire avec un littéral, elle est stockée en tant que nombre entier. Après avoir défini l’un des bits, affichez la nouvelle valeur binaire sous forme de texte avec la fonction dec2bin.

register = 0b10010110
register = uint8

150
register = bitset(register,5,0)
register = uint8

134
binStr = dec2bin(register)
binStr = 
'10000110'

Voir aussi

| | | | |

Rubriques