Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> MATLAB

MATLAB - Snaren

Het maken van een tekenreeks is vrij eenvoudig in MATLAB. Sterker nog, we hebben het vaak gebruikt. U typt bijvoorbeeld het volgende in de opdrachtprompt −

Live demo
my_string = 'Tutorials Point'

MATLAB zal de bovenstaande instructie uitvoeren en het volgende resultaat retourneren −

my_string = Tutorials Point

MATLAB beschouwt alle variabelen als arrays en strings worden beschouwd als tekenarrays. Laten we de wie . gebruiken commando om de hierboven aangemaakte variabele te controleren −

whos

MATLAB zal de bovenstaande instructie uitvoeren en het volgende resultaat retourneren −

Name           Size            Bytes  Class    Attributes
my_string      1x16               32  char

Interessant is dat u numerieke conversiefuncties zoals uint8 . kunt gebruiken of uint16 om de tekens in de tekenreeks om te zetten in hun numerieke codes. De char functie converteert de gehele vector terug naar karakters −

Voorbeeld

Maak een scriptbestand en typ de volgende code erin −

Live demo
my_string = 'Tutorial''s Point';
str_ascii = uint8(my_string)        % 8-bit ascii values
str_back_to_char= char(str_ascii)  
str_16bit = uint16(my_string)       % 16-bit ascii values
str_back_to_char = char(str_16bit)  

Wanneer u het bestand uitvoert, wordt het volgende resultaat weergegeven −

str_ascii =

   84  117  116  111  114  105   97  108   39  115   32   80  111  105  110  116

str_back_to_char = Tutorial's Point
str_16bit =

   84  117  116  111  114  105   97  108   39  115   32   80  111  105  110  116

str_back_to_char = Tutorial's Point

Rechthoekige tekenreeks

De strings die we tot nu toe hebben besproken, zijn eendimensionale tekenreeksen; we moeten echter meer opslaan dan dat. We moeten meer dimensionale tekstuele gegevens in ons programma opslaan. Dit wordt bereikt door rechthoekige tekenreeksen te maken.

De eenvoudigste manier om een ​​rechthoekige tekenreeks te maken, is door twee of meer eendimensionale tekenreeksen samen te voegen, verticaal of horizontaal zoals vereist.

U kunt strings verticaal combineren op een van de volgende manieren −

  • De MATLAB-aaneenschakelingsoperator gebruiken [] en het scheiden van elke rij met een puntkomma (;). Houd er rekening mee dat bij deze methode elke rij hetzelfde aantal tekens moet bevatten. Voor strings met verschillende lengtes moet u zo nodig met spatietekens opvullen.

  • De char . gebruiken functie. Als de tekenreeksen verschillende lengtes hebben, vult char de kortere tekenreeksen op met spaties aan het einde, zodat elke rij hetzelfde aantal tekens heeft.

Voorbeeld

Maak een scriptbestand en typ de volgende code erin −

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

Wanneer u het bestand uitvoert, wordt het volgende resultaat weergegeven −

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

U kunt strings horizontaal combineren op een van de volgende manieren −

  • Met behulp van de MATLAB-aaneenschakelingsoperator, [] en het scheiden van de invoerreeksen met een komma of een spatie. Deze methode behoudt eventuele volgspaties in de invoerarrays.

  • Met behulp van de tekenreeksaaneenschakelingsfunctie, strcat . Deze methode verwijdert achterliggende spaties in de invoer.

Voorbeeld

Maak een scriptbestand en typ de volgende code erin −

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

Wanneer u het bestand uitvoert, wordt het volgende resultaat weergegeven −

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

Snaren combineren in een celarray

Uit onze vorige discussie is het duidelijk dat het combineren van strings met verschillende lengtes lastig kan zijn, omdat alle strings in de array dezelfde lengte moeten hebben. We hebben spaties aan het einde van strings gebruikt om de lengte gelijk te maken.

Een efficiëntere manier om de strings te combineren is echter om de resulterende array om te zetten in een celarray.

MATLAB-celarray kan verschillende groottes en soorten gegevens in een array bevatten. Celarrays bieden een flexibelere manier om strings van verschillende lengte op te slaan.

De cellstr functie converteert een tekenreeks naar een celreeks van tekenreeksen.

Voorbeeld

Maak een scriptbestand en typ de volgende code erin −

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

Wanneer u het bestand uitvoert, wordt het volgende resultaat weergegeven −

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

Snaarfuncties in MATLAB

MATLAB biedt tal van tekenreeksfuncties voor het maken, combineren, ontleden, vergelijken en manipuleren van tekenreeksen.

De volgende tabel geeft een korte beschrijving van de tekenreeksfuncties in MATLAB −

Functie Doel
Functies voor het opslaan van tekst in tekenreeksen, het combineren van tekenreeksen, enz.
blanks Een reeks lege tekens maken
cellstr Creëer een celreeks van tekenreeksen uit een tekenreeks
char Converteren naar tekenreeks (tekenreeks)
iscellstr Bepaal of de invoer een celreeks van tekenreeksen is
ischar Bepaal of het item een ​​tekenreeks is
sprintf Gegevens opmaken in string
strcat Samenvoegen strings horizontaal
strjoin Voeg strings in celarray samen tot een enkele string
Functies voor het identificeren van delen van strings, zoeken en vervangen van substrings
ischar Bepaal of het item een ​​tekenreeks is
isletter Array-elementen die alfabetische letters zijn
isspace Array-elementen die spatietekens zijn
isstrprop Bepaal of de string van de gespecificeerde categorie is
sscanf Geformatteerde gegevens uit string lezen
strfind Zoek een string in een andere
strrep Substring zoeken en vervangen
strsplit Tekenreeks splitsen bij gespecificeerd scheidingsteken
strtok Geselecteerde delen van string
validatestring Geldigheid van tekststring controleren
symvar Bepaal symbolische variabelen in uitdrukking
regexp Overeenkomen met reguliere expressie (hoofdlettergevoelig)
regexpi Overeenkomen met reguliere expressie (hoofdletterongevoelig)
regexprep Tekenreeks vervangen door reguliere expressie
regexptranslate Tekenreeks vertalen naar reguliere expressie
Functies voor het vergelijken van strings
strcmp Tekenreeksen vergelijken (hoofdlettergevoelig)
strcmpi Tekenreeksen vergelijken (hoofdlettergevoelig)
strncmp Vergelijk eerste n karakters van strings (hoofdlettergevoelig)
strncmpi Vergelijk de eerste n karakters van strings (hoofdletterongevoelig)
Functies voor het wijzigen van tekenreeksen in hoofdletters of kleine letters, voor het maken of verwijderen van witruimte
blank Sluit spaties aan het einde van de tekenreeks
strtrim Verwijder voorloop- en volgspaties uit string
lager Tekenreeks converteren naar kleine letters
bovenste Tekenreeks omzetten in hoofdletters
strjust Tekenreeks uitvullen

Voorbeelden

De volgende voorbeelden illustreren enkele van de bovengenoemde tekenreeksfuncties −

Snaren opmaken

Maak een scriptbestand en typ de volgende code erin −

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

Wanneer u het bestand uitvoert, wordt het volgende resultaat weergegeven −

ans =  3141.592654 
   3141.59 
   +3141.59 
      3141.59 
   000003141.59 

Snaren samenvoegen

Maak een scriptbestand en typ de volgende code erin −

Live demo
%cell array of strings
str_array = {'red','blue','green', 'yellow', 'orange'};

% Join strings in cell array into single string
str1 = strjoin(str_array, "-")
str2 = strjoin(str_array, ",")

Wanneer u het bestand uitvoert, wordt het volgende resultaat weergegeven −

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

Snaren zoeken en vervangen

Maak een scriptbestand en typ de volgende code erin −

Live demo
students = {'Zara Ali', 'Neha Bhatnagar', ...
            'Monica Malik', 'Madhu Gautam', ...
            'Madhu Sharma', 'Bhawna Sharma',...
            'Nuha Ali', 'Reva Dutta', ...
            'Sunaina Ali', 'Sofia Kabir'};
 
% The strrep function searches and replaces sub-string.
new_student = strrep(students(8), 'Reva', 'Poulomi')
% Display first names
first_names = strtok(students)

Wanneer u het bestand uitvoert, wordt het volgende resultaat weergegeven −

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
}

Snaren vergelijken

Maak een scriptbestand en typ de volgende code erin −

Live demo
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

Wanneer u het bestand uitvoert, wordt het volgende resultaat weergegeven −

str1 = This is test
str2 = This is text
ans = This is test and This is text are not equal

MATLAB

  1. Java-strings
  2. MATLAB - Overzicht
  3. MATLAB - Variabelen
  4. MATLAB - Opdrachten
  5. MATLAB - Gegevenstypen
  6. MATLAB - Operators
  7. MATLAB - Matrix
  8. MATLAB - Arrays
  9. MATLAB - Dubbele puntnotatie
  10. MATLAB - Cijfers
  11. MATLAB - Functies