Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> MATLAB

MATLAB - Chaînes

La création d'une chaîne de caractères est assez simple dans MATLAB. En fait, nous l'avons utilisé plusieurs fois. Par exemple, vous tapez ce qui suit dans l'invite de commande −

Démo en direct
my_string = 'Tutorials Point'

MATLAB exécutera l'instruction ci-dessus et renverra le résultat suivant −

my_string = Tutorials Point

MATLAB considère toutes les variables comme des tableaux et les chaînes sont considérées comme des tableaux de caractères. Utilisons le qui commande pour vérifier la variable créée ci-dessus −

whos

MATLAB exécutera l'instruction ci-dessus et renverra le résultat suivant −

Name           Size            Bytes  Class    Attributes
my_string      1x16               32  char

Fait intéressant, vous pouvez utiliser des fonctions de conversion numérique comme uint8 ou uint16 pour convertir les caractères de la chaîne en leurs codes numériques. Le char la fonction reconvertit le vecteur entier en caractères −

Exemple

Créez un fichier de script et tapez-y le code suivant −

Démo en direct
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)  

Lorsque vous exécutez le fichier, il affiche le résultat suivant −

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

Tableau de caractères rectangulaire

Les chaînes dont nous avons parlé jusqu'ici sont des tableaux de caractères unidimensionnels; cependant, nous devons stocker plus que cela. Nous devons stocker des données textuelles plus dimensionnelles dans notre programme. Ceci est réalisé en créant des tableaux de caractères rectangulaires.

Le moyen le plus simple de créer un tableau de caractères rectangulaire consiste à concaténer deux ou plusieurs tableaux de caractères unidimensionnels, verticalement ou horizontalement, selon les besoins.

Vous pouvez combiner des chaînes verticalement de l'une des manières suivantes −

Exemple

Créez un fichier de script et tapez-y le code suivant −

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

Lorsque vous exécutez le fichier, il affiche le résultat suivant −

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

Vous pouvez combiner des chaînes horizontalement de l'une des manières suivantes −

Exemple

Créez un fichier de script et tapez-y le code suivant −

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

Lorsque vous exécutez le fichier, il affiche le résultat suivant −

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

Combiner des chaînes dans un tableau de cellules

D'après notre discussion précédente, il est clair que la combinaison de chaînes de différentes longueurs peut être pénible car toutes les chaînes du tableau doivent être de la même longueur. Nous avons utilisé des espaces vides à la fin des chaînes pour égaliser leur longueur.

Cependant, un moyen plus efficace de combiner les chaînes consiste à convertir le tableau résultant en un tableau de cellules.

Le tableau de cellules MATLAB peut contenir différentes tailles et types de données dans un tableau. Les tableaux de cellules offrent un moyen plus flexible de stocker des chaînes de longueur variable.

La cellstr convertit un tableau de caractères en un tableau de cellules de chaînes.

Exemple

Créez un fichier de script et tapez-y le code suivant −

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

Lorsque vous exécutez le fichier, il affiche le résultat suivant −

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

Fonctions de chaîne dans MATLAB

MATLAB fournit de nombreuses fonctions de chaîne pour créer, combiner, analyser, comparer et manipuler des chaînes.

Le tableau suivant fournit une brève description des fonctions de chaîne dans MATLAB −

Fonction Objectif
Fonctions pour stocker du texte dans des tableaux de caractères, combiner des tableaux de caractères, etc.
vides Créer une chaîne de caractères vides
cellstr Créer un tableau de cellules de chaînes à partir d'un tableau de caractères
char Convertir en tableau de caractères (chaîne)
iscellstr Déterminer si l'entrée est un tableau de cellules de chaînes
ischar Déterminer si l'élément est un tableau de caractères
sprintf Formater les données en chaîne
strcat Concaténer les chaînes horizontalement
strjoin Joindre les chaînes du tableau de cellules en une seule chaîne
Fonctions pour identifier des parties de chaînes, rechercher et remplacer des sous-chaînes
ischar Déterminer si l'élément est un tableau de caractères
lettre Éléments de tableau qui sont des lettres alphabétiques
estespace Éléments de tableau qui sont des espaces
isstrprop Déterminer si la chaîne appartient à la catégorie spécifiée
scanf Lire les données formatées à partir de la chaîne
strfind Rechercher une chaîne dans une autre
strrep Rechercher et remplacer une sous-chaîne
strsplit Diviser la chaîne au délimiteur spécifié
strtok Parties sélectionnées de la chaîne
chaîne de validation Vérifier la validité de la chaîne de texte
symvar Déterminer les variables symboliques dans l'expression
expression régulière Reconnaître l'expression régulière (sensible à la casse)
expression régulière Reconnaître l'expression régulière (insensible à la casse)
préparation d'expression régulière Remplacer la chaîne à l'aide d'une expression régulière
regexptranslate Traduire une chaîne en expression régulière
Fonctions de comparaison de chaînes
strcmp Comparer les chaînes (sensible à la casse)
strcmpi Comparer les chaînes (insensible à la casse)
strncmp Comparer les n premiers caractères des chaînes (sensible à la casse)
strncmpi Comparer les n premiers caractères des chaînes (insensible à la casse)
Fonctions pour changer la chaîne en majuscules ou minuscules, créer ou supprimer des espaces blancs
supprimer Supprimer les blancs de fin de chaîne
strtrim Supprimer les espaces blancs de début et de fin de la chaîne
plus bas Convertir la chaîne en minuscules
supérieur Convertir la chaîne en majuscule
strjust Justifier le tableau de caractères

Exemples

Les exemples suivants illustrent certaines des fonctions de chaîne mentionnées ci-dessus −

Formatage des chaînes

Créez un fichier de script et tapez-y le code suivant −

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

Lorsque vous exécutez le fichier, il affiche le résultat suivant −

ans =  3141.592654 
   3141.59 
   +3141.59 
      3141.59 
   000003141.59 

Joindre des chaînes

Créez un fichier de script et tapez-y le code suivant −

Démo en direct
%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, ",")

Lorsque vous exécutez le fichier, il affiche le résultat suivant −

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

Rechercher et remplacer des chaînes

Créez un fichier de script et tapez-y le code suivant −

Démo en direct
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)

Lorsque vous exécutez le fichier, il affiche le résultat suivant −

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
}

Comparer des chaînes

Créez un fichier de script et tapez-y le code suivant −

Démo en direct
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

Lorsque vous exécutez le fichier, il affiche le résultat suivant −

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

MATLAB

  1. Chaînes Java
  2. MATLAB - Aperçu
  3. MATLAB-Variables
  4. MATLAB - Commandes
  5. MATLAB - Types de données
  6. MATLAB - Opérateurs
  7. MATLAB - Matrice
  8. MATLAB - Tableaux
  9. MATLAB - Notation des deux-points