English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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-
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
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
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 }
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-
Funzione | Azione |
---|---|
Funzioni utilizzate per memorizzare il testo in un array di caratteri, combinare array di caratteri, ecc. | |
blanks | Creare una stringa di caratteri spaziali |
cellstr | Creare un array di celle di stringhe da un array di caratteri |
char | Convertire in array di caratteri (stringa) |
iscellstr | Determinare se l'input è un array di celle di stringhe |
ischar | Determinare se l'elemento è un array di caratteri |
sprintf | Formattare i dati in una stringa |
strcat | Connessione orizzontale delle stringhe |
strjoin | Unisci le stringhe dell'array di celle in una singola stringa |
Riconoscere la parte della stringa, le funzioni di ricerca e sostituzione della stringa sottostante | |
ischar | Determinare se l'elemento è un array di caratteri |
isletter | Come elemento dell'array di lettere |
isspace | Come elemento dell'array di spazi |
isstrprop | Determinare se la stringa appartiene a una categoria specificata |
sscanf | Leggi i dati formattati dalla stringa |
strfind | Trova una stringa in un'altra stringa |
strrep | Trova e sostituisci la stringa sottostante |
strsplit | Dividi la stringa in base al separatore specificato |
strtok | Parte selezionata della stringa |
validatestring | Verifica la validità della stringa di testo |
symvar | Determinare i simboli variabili nell'espressione |
regexp | Corrispondenza 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 }
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