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

字符串MATLAB

Creare una stringa in MATLAB è molto semplice. In realtà, l'abbiamo fatto molte volte. Ad esempio, puoi digitare il seguente contenuto nel prompt dei comandi-

my_string = 'oldtoolbag.com'

MATLAB eseguirà l'istruzione sopra e restituirà il seguente risultato-

my_string = oldtoolbag.com

MATLAB considera tutte le variabili come array e le stringhe come array di caratteri. Usiamowhoscomando per controllare le variabili create sopra-

whos

MATLAB eseguirà l'istruzione sopra e restituirà il seguente risultato-

Nome  Dimensione  Bytes  Classe  Attributi
my_string 1x16 32 char

Curiosamente, puoi usare funzioni di conversione numerica, comeuint8ouint16per convertire i caratteri di una stringa nel loro codice numerico.charLa funzione converte un vettore di interi in un array di caratteri-

Esempio online

Crea un file script e inserisci il seguente codice-

my_string = 'w3codebox's com';
str_ascii = uint8(my_string) % valore ascii a 8 bit
str_ascii = char(str_ascii)  
str_16bit = uint16(my_string) % valore ascii a 16 bit
str_back_to_char = char(str_16bit)

Eseguiendo il file, visualizza i seguenti risultati-

str_ascii =
  110 104 111 111 111 39 115 32 99 111 109
str_back_to_char = com di w3codebox's
str_16bit =
  110 104 111 111 111 39 115 32 99 111 109
str_back_to_char = com di w3codebox's

Array di caratteri rettangolare

Finora, le stringhe di cui abbiamo discusso sono array di caratteri unidimensionali. Ma abbiamo bisogno di più. Dobbiamo memorizzare più dati di testo multidimensionali nel programma. Questo viene realizzato creando array di caratteri rettangolari.

Il metodo più semplice per creare un array di caratteri rettangolare è connettere verticalmente o orizzontalmente due o più array di caratteri unidimensionali secondo necessità.

Puoi combinare stringhe verticalmente in due modi:

  • Utilizzando l'operatore di connessione MATLAB [], e separa ogni riga con un punto e virgola (;). Nota che in questo metodo, ogni riga deve contenere lo stesso numero di caratteri. Per le stringhe di lunghezze diverse, utilizzare i caratteri di spazio come necessario.

  • Utilizzando la funzione char. Se le stringhe hanno lunghezze diverse, char riempie le stringhe più corte con spazi in coda per rendere ogni riga con lo stesso numero di caratteri.

实例

Crea un file script e inserisci il seguente codice-

doc_profile = ['Zara Ali                                                                                         '; ...
               'Sr. Surgeon                                                                                             '; ...
               'R N Tagore Cardiology Research Center']
doc_profile = char('Zara Ali', 'Sr. Surgeon', ...
                  'RN Tagore Cardiology Research Center')

Eseguiendo il file, visualizza i seguenti risultati-

doc_profile =
Zara Ali                             
Sr. Surgeon                          
R N Tagore Cardiology Research Center
doc_profile =
Zara Ali                            
Sr. Surgeon                         
RN Tagore Cardiology Research Center

Puoi combinare stringhe orizzontalmente in due modi:

  • Utilizzando l'operatore di concatenazione MATLAB[]E separa le stringhe di input con virgole o spazi. Questo metodo mantiene tutti gli spazi in coda dell'array di input.

  • Utilizzando la funzione di concatenazione di stringhe strcat, questo metodo elimina gli spazi in coda dall'input.

实例

Crea un file script e inserisci il seguente codice-

name =     'Zara Ali                             ';
position = 'Sr. Surgeon                          '; 
worksAt = 'R N Tagore Cardiology Research Center';
profile = [name, ' ', position, ' ', worksAt]
profile = strcat(name, ', ', position, ', ', worksAt)

Eseguiendo il file, visualizza i seguenti risultati-

profile = Zara Ali, , Sr. Surgeon, , R N Tagore Cardiology Research Center
profile = Zara Ali, Sr. Surgeon, R N Tagore Cardiology Research Center

Combinare stringhe in un array di celle

Dalla discussione precedente è chiaro che combinare stringhe di lunghezze diverse può essere fastidioso, perché tutte le stringhe nell'array devono avere la stessa lunghezza. Abbiamo utilizzato spazi in coda per rendere le loro lunghezze uguali.

Ma il metodo più efficace per combinare stringhe è trasformare l'array dei risultati in un array di celle.

MATLAB单元数组可以在数组中保存不同大小和类型的数据。单元数组提供了一种更灵活的方式来存储长度可变的字符串。

cellstr函数将字符数组转换为字符串的单元格数组。

实例

Crea un file script e inserisci il seguente codice-

name =     'Zara Ali                             ';
position = 'Sr. Surgeon                          '; 
worksAt = 'R N Tagore Cardiology Research Center';
profile = char(name, position, worksAt);
profile = cellstr(profile);
disp(profile)

Eseguiendo il file, visualizza i seguenti risultati-

{                                                                               
   [1,1] = Zara Ali                                                              
   [2,1] = Sr. Surgeon                                                           
   [3,1] = R N Tagore Cardiology Research Center                                 
}

Funzioni di stringa in MATLAB

MATLAB fornisce molte funzioni di stringa per creare, combinare, analizzare, confrontare e operare le stringhe.

La tabella seguente fornisce una panoramica delle funzioni di stringa in MATLAB-

FunzioneAzione
Funzioni utilizzate per memorizzare il testo in un array di caratteri, combinare array di caratteri, ecc.
blanks

Creare una stringa di caratteri spaziali

cellstrCreare un array di celle di stringhe da un array di caratteri
char

Convertire in array di caratteri (stringa)

iscellstrDeterminare se l'input è un array di celle di stringhe
ischarDeterminare se l'elemento è un array di caratteri
sprintfFormattare i dati in una stringa
strcatConnessione orizzontale delle stringhe
strjoinUnisci le stringhe dell'array di celle in una singola stringa
Riconoscere la parte della stringa, le funzioni di ricerca e sostituzione della stringa sottostante
ischarDeterminare se l'elemento è un array di caratteri
isletterCome elemento dell'array di lettere
isspaceCome elemento dell'array di spazi
isstrpropDeterminare se la stringa appartiene a una categoria specificata
sscanfLeggi i dati formattati dalla stringa
strfindTrova una stringa in un'altra stringa
strrepTrova e sostituisci la stringa sottostante
strsplitDividi la stringa in base al separatore specificato
strtokParte selezionata della stringa
validatestringVerifica la validità della stringa di testo
symvarDeterminare i simboli variabili nell'espressione
regexpCorrispondenza con l'espressione regolare (distinto tra maiuscole e minuscole)
regexpi

匹配正则表达式(不区分大小写)

regexprep使用正则表达式替换字符串
regexptranslate

将字符串转换为正则表达式

字符串比较功能
strcmp比较字符串(区分大小写)
strcmpi

比较字符串(不区分大小写)

strncmp比较字符串的前n个字符(区分大小写)
strncmpi

比较字符串的前 n 个字符(不区分大小写)

用于将字符串更改为大写或小写,创建或删除空格的函数
deblank从字符串末尾去除尾随空白
strtrim删除字符串的前导和尾随空格
lower将字符串转换为小写
upper将字符串转换为大写
strjust对齐字符数组

实例

以下示例说明了上述一些字符串函数-

格式化字符串

Crea un file script e inserisci il seguente codice-

A = pi*1000*ones(1,5);
sprintf(' %f \n %.2f \n %+.2f \n %12.2f \n %012.2f \n', A)

Eseguiendo il file, visualizza i seguenti risultati-

ans = 3141.592654 
   3141.59 
   +3141.59 
      3141.59 
   000003141.59

连接字符串

Crea un file script e inserisci il seguente codice-

%字符串单元格数组
str_array = {'red','blue','green', 'yellow', 'orange'};
%将单元格数组中的字符串合并为单个字符串
str1 = strjoin(str_array, "-")
str2 = strjoin(str_array, ",")

Eseguiendo il file, visualizza i seguenti risultati-

str1 = red-blue-green-yellow-orange
str2 = red,blue,green,yellow,orange

查找和替换字符串

Crea un file script e inserisci il seguente codice-

students = {'Zara Ali', 'Neha Bhatnagar', ...}
            'Monica Malik', 'Madhu Gautam', ...
            'Madhu Sharma', 'Bhawna Sharma', ...
            'Nuha Ali', 'Reva Dutta', ...
            'Sunaina Ali', 'Sofia Kabir';
 
%strrep函数搜索并替换子字符串。
new_student = strrep(students(8), 'Reva', 'Poulomi')
%visualizza nome
first_names = strtok(students)

Eseguiendo il file, visualizza i seguenti risultati-

new_student = 
{
   [1,1] = Poulomi Dutta
}
first_names = 
{
   [1,1] = Zara
   [1,2] = Neha
   [1,3] = Monica
   [1,4] = Madhu
   [1,5] = Madhu
   [1,6] = Bhawna
   [1,7] = Nuha
   [1,8] = Reva
   [1,9] = Sunaina
   [1,10] = Sofia
}

confronto stringhe

Crea un file script e inserisci il seguente codice-

str1 = 'Questo è test'
str2 = 'Questo è text'
se (strcmp(str1, str2))
   sprintf('%s e %s sono uguali', str1, str2)
altrimenti
   sprintf('%s e %s non sono uguali', str1, str2)
fine

Eseguiendo il file, visualizza i seguenti risultati-

str1 = Questo è test
str2 = Questo è text
ans = Questo è test e Questo è text non sono uguali