Contenuto principale

Conversione di valori numerici in testo

Questo esempio mostra come convertire valori numerici in testo e aggiungerli a segmenti di testo più grandi. Ad esempio, si potrebbe voler aggiungere un'etichetta o un titolo a un grafico, dove l'etichetta include un numero che descrive una caratteristica del grafico stesso.

Conversione in stringhe

Per convertire un numero in una stringa che lo rappresenti, utilizzare la funzione string.

str = string(pi)
str = 
"3.1416"

La funzione string converte un array numerico in un array di stringhe della stessa grandezza.

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

È possibile specificare il formato del testo di output utilizzando la funzione compose che accetta specificatori di formato per la precisione, la larghezza del campo e la notazione esponenziale.

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

Se l'input è un array numerico, compose restituisce un array di stringhe. Restituisce un array di stringhe che rappresenta i numeri utilizzando la notazione esponenziale.

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

Aggiunta di numeri alle stringhe

Il modo più semplice per combinare testo e numeri è utilizzare l'operatore plus (+). Questo operatore converte automaticamente i valori numerici in stringhe quando gli altri operandi sono stringhe.

Ad esempio, tracciare un'onda sinusoidale. Calcolare la frequenza dell'onda e aggiungere una stringa che rappresenti tale valore nel titolo del grafico.

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.

A volte, il testo esistente viene memorizzato in vettori di caratteri o array di celle di vettori di caratteri. Tuttavia, l'operatore plus converte anche automaticamente questi tipi di dati in stringhe quando un altro operando è una stringa. Per combinare i valori numerici con questi tipi di dati, convertire prima i valori numerici in stringhe, quindi utilizzare plus per combinare il testo.

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

Codici dei caratteri

Se i dati contengono numeri interi che rappresentano valori Unicode®, utilizzare la funzione char per convertire i valori nei caratteri corrispondenti. L'output è un vettore di caratteri o un array.

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

La conversione dei valori Unicode consente inoltre di includere caratteri speciali nel testo. Ad esempio, il valore Unicode del simbolo dei gradi è 176. Per aggiungere char(176) a una stringa, utilizzare plus.

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

Valori esadecimali e binari

È possibile rappresentare valori esadecimali e binari nel codice sia utilizzando testo che utilizzando letterali. Il modo consigliato per rappresentarli è scriverli come letterali. È possibile scrivere letterali esadecimali e binari utilizzando rispettivamente i prefissi 0x e 0b. Tuttavia, a volte può essere utile rappresentare tali valori come testo, utilizzando la funzione dec2hex o dec2bin.

Ad esempio, impostare un bit in un valore binario. Se si specifica il valore binario utilizzando un letterale, tale valore viene memorizzato come numero intero. Dopo aver impostato uno dei bit, visualizzare il nuovo valore binario come testo utilizzando la funzione dec2bin.

register = 0b10010110
register = uint8

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

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

Vedi anche

| | | | |

Argomenti