MATLAB Strings: Maken, Manipuleren en Functies
Het maken van een karakterstring in MATLAB is eenvoudig. Strings worden beschouwd als karakterarrays.
my_string = 'Tutorials Point'
Met whos zien we de eigenschappen:
Name Size Bytes Class Attributes my_string 1x16 32 char
Karakters kunnen geconverteerd worden naar numerieke codes:
my_string = 'Tutorial''s Point'; str_ascii = uint8(my_string) % 8-bit ASCII waarden str_back = char(str_ascii) % terug naar karakters str_16bit = uint16(my_string) % 16-bit waarden str_back = char(str_16bit)
Rechthoekige Karakter Arrays
Om meerdere regels tekst op te slaan, maken we rechthoekige karakterarrays waar alle rijen even lang zijn.
Verticaal Combineren
- Met concatenatie operator
[]en puntkomma's (rijen moeten even lang zijn, pads met spaties) - Met
charfunctie (vult kortere strings automatisch met spaties aan)
doc_profile = ['Zara Ali '; 'Sr. Surgeon '; 'R N Tagore Cardiology Research Center'];
doc_profile = char('Zara Ali', 'Sr. Surgeon', 'RN Tagore Cardiology Research Center')
Horizontaal Combineren
- Met
[]en komma's/spaties (behoudt trailing spaties) - Met
strcat(verwijdert trailing spaties)
name = 'Zara Ali '; position = 'Sr. Surgeon '; worksAt = 'R N Tagore...'; profile = [name ', ' position ', ' worksAt]; profile = strcat(name, ', ', position, ', ', worksAt);
Strings Combineren in Cel Arrays
Cel arrays bieden flexibele opslag voor strings van variabele lengte. De cellstr functie converteert een karakterarray naar een cel array van strings.
name = 'Zara Ali '; position = 'Sr. Surgeon '; worksAt = 'R N Tagore...'; profile = char(name, position, worksAt); profile = cellstr(profile); disp(profile)
Resultaat:
{'Zara Ali'; 'Sr. Surgeon'; 'R N Tagore Cardiology Research Center'}
String Functies in MATLAB
MATLAB biedt uitgebreide functies voor string manipulatie:
| Categorie | Functies |
|---|---|
| Opslag & Combinatie | blanks, cellstr, char, iscellstr, ischar, sprintf, strcat, strjoin |
| Identificeren & Zoeken | isletter, isspace, isstrprop, sscanf, strfind, strrep, strsplit, strtok, validatestring, symvar, regexp, regexpi, regexprep, regexptranslate |
| Vergelijking | strcmp, strcmpi, strncmp, strncmpi |
| Case & Witruimte | deblank, strtrim, lower, upper, strjust |
Voorbeelden
Strings Formatteren met sprintf
A = pi*1000*ones(1,5);
sprintf(' %f \n %.2f \n %+.2f \n %12.2f \n %012.2f \n', A)
Resultaat:
3141.592654 3141.59 +3141.59 3141.59 000003141.59
Strings Samenvoegen met strjoin
str_array = {'red','blue','green','yellow','orange'};
str1 = strjoin(str_array, '-');
str2 = strjoin(str_array, ',');
Resultaat: red-blue-green-yellow-orange en red,blue,green,yellow,orange
Zoeken & Vervangen met strrep en strtok
students = {'Zara Ali', 'Neha Bhatnagar', 'Monica Malik', ...};
new_student = strrep(students(8), 'Reva', 'Poulomi');
first_names = strtok(students);
Strings Vergelijken met strcmp
str1 = 'This is test'; str2 = 'This is text';
if strcmp(str1, str2)
sprintf('%s and %s are equal', str1, str2)
else
sprintf('%s and %s are not equal', str1, str2)
end
Resultaat: This is test and This is text are not equal
MATLAB
- MATLAB: Uitgebreid Overzicht van een Leidende Numerieke Rekenomgeving
- Variabelen in MATLAB Begrijpen: Basis en Voorbeelden
- Essentiële MATLAB Commando's voor Efficiënte Berekening
- MATLAB Datatypes: Uitgebreide Gids
- MATLAB Operatoren: Complete Gids voor Rekenkundige, Logische en Bitwise Operaties
- MATLAB Matrix Basis: Data Aanmaken, Benaderen en Manipuleren
- MATLAB: Multidimensionale en Speciale Arrays Beheersen
- MATLAB Dubbele Punt Notatie: Vectors Maken & Efficiënt Itereren
- MATLAB Getallen: Typen, Opslag en Conversie
- MATLAB Functies: Definitie, Werkruimte, In- en Outputs
- Java Strings beheersen: aanmaken, methodes en best practices