Contenuto principale

Testo in stringhe e array di caratteri

Esistono due modi per rappresentare il testo in MATLAB®. È possibile memorizzare il testo in array di stringhe e in vettori di caratteri. MATLAB visualizza le stringhe con virgolette doppie e i vettori di caratteri con virgolette singole.

Rappresentazione del testo con array di stringhe

È possibile memorizzare qualsiasi sequenza di caratteri 1 x n come stringa, utilizzando il tipo di dato string. Racchiudere il testo tra virgolette doppie per creare una stringa.

str = "Hello, world"
str = 
"Hello, world"

Sebbene il testo "Hello, world" sia lungo 12 caratteri, str è una stringa 1x1, ossia uno scalare di stringa. È possibile utilizzare un scalare di stringa per specificare un nome di file, un'etichetta del grafico o qualsiasi altra informazione testuale.

Per trovare il numero di caratteri in una stringa, utilizzare la funzione strlength.

n = strlength(str)
n = 
12

Se il testo include delle virgolette doppie, usare due virgolette doppie all'interno della definizione.

str = "They said, ""Welcome!"" and waved."
str = 
"They said, "Welcome!" and waved."

Per aggiungere testo alla fine di una stringa, utilizzare l'operatore +. Se una variabile può essere convertita in una stringa, plus la converte e la aggiunge.

fahrenheit = 71;
celsius = (fahrenheit-32)/1.8;
tempText = "temperature is " + celsius + "C"
tempText = 
"temperature is 21.6667C"

È inoltre possibile concatenare il testo utilizzando la funzione append.

tempText2 = append("Today's ",tempText)
tempText2 = 
"Today's temperature is 21.6667C"

La funzione string può convertire diversi tipi di input, come valori numerici, data e ora, durata e categorici. Ad esempio, convertire l'output di pi in una stringa.

ps = string(pi)
ps = 
"3.1416"

È possibile memorizzare più parti di testo in un array di stringhe. Ciascun elemento dell'array può contenere una stringa con un numero diverso di caratteri, senza riempimento.

str = ["Mercury","Gemini","Apollo";...
       "Skylab","Skylab B","ISS"]
str = 2×3 string
    "Mercury"    "Gemini"      "Apollo"
    "Skylab"     "Skylab B"    "ISS"   

str è un array di stringhe 2x3. È possibile trovare la lunghezza delle stringhe con la funzione strlength.

N = strlength(str)
N = 2×3

     7     6     6
     6     8     3

Gli array di stringhe sono supportati in tutti i prodotti di MATLAB e MathWorks®. Le funzioni che accettano array di caratteri (e array di celle di vettori di caratteri) come input accettano anche array di stringhe.

Rappresentazione del testo con vettori di caratteri

Per memorizzare una sequenza di caratteri 1 x n come vettore di caratteri, utilizzando il tipo di dato char, racchiuderla tra virgolette singole.

chr = 'Hello, world'
chr = 
'Hello, world'

Il testo 'Hello, world' è lungo 12 caratteri e chr lo memorizza come vettore di caratteri 1x12.

whos chr
  Name      Size            Bytes  Class    Attributes

  chr       1x12               24  char               

Se il testo include delle virgolette singole, utilizzare due virgolette singole all'interno della definizione.

chr = 'They said, ''Welcome!'' and waved.'
chr = 
'They said, 'Welcome!' and waved.'

I vettori di caratteri hanno due utilizzi principali:

  • Per specificare singoli elementi di testo, come nomi di file ed etichette del grafico.

  • Per rappresentare dati codificati utilizzando caratteri. In questi casi, potrebbe essere necessario poter accedere facilmente ai singoli caratteri.

Ad esempio, è possibile memorizzare una sequenza di DNA come vettore di caratteri.

seq = 'GCTAGAATCC';

È possibile accedere a singoli caratteri o sottoinsiemi di caratteri tramite l'indicizzazione, proprio come si indicizzerebbe a un array numerico.

seq(4:6)
ans = 
'AGA'

Concatenare il vettore di caratteri con parentesi quadre, proprio come si concatenano altri tipi di array.

seq2 = [seq 'ATTAGAAACC']
seq2 = 
'GCTAGAATCCATTAGAAACC'

È anche possibile concatenare il testo utilizzando append. La funzione append è consigliata perché tratta in modo coerente gli array di stringhe, i vettori di caratteri e gli array di celle di vettori di caratteri.

seq2 = append(seq,'ATTAGAAACC')
seq2 = 
'GCTAGAATCCATTAGAAACC'

Le funzioni di MATLAB che accettano array di stringhe come input accettano anche vettori di caratteri e array di celle di vettori di caratteri.

Vedi anche

| | | | | |

Argomenti