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

Cadenas de MATLAB

在MATLAB中创建字符串非常简单。实际上,我们已经使用了很多次。例如,您在命令提示符下键入以下内容-

my_string = 'oldtoolbag.com'

MATLAB将执行上述语句并返回以下结果-

my_string = oldtoolbag.com

MATLAB将所有变量视为数组,而字符串则视为字符数组。让我们使用whos命令来检查上面创建的变量-

whos

MATLAB将执行上述语句并返回以下结果-

Name           Size            Bytes  Class    Attributes
my_string      1x16               32  char

有趣的是,您可以使用数字转换函数,例如uint8uint16以将字符串中的字符转换为其数字代码。char函数将整数向量转换回字符-

在线示例

Cree un archivo de script y escriba el siguiente código-

my_string = 'w3codebox''s com';
str_ascii = uint8(my_string)        %8位 ascii 值
str_back_to_char= char(str_ascii)  
str_16bit = uint16(my_string)       %16位ascii值
str_back_to_char = char(str_16bit)

Al ejecutar el archivo, muestra el siguiente resultado-

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

矩形字符数组

到目前为止,我们讨论的字符串是一维字符数组。但是,我们需要存储更多。我们需要在程序中存储更多维度的文本数据。这是通过创建矩形字符数组来实现的。

创建矩形字符数组的最简单方法是根据需要垂直或水平连接两个或多个一维字符数组。

您可以通过以下两种方式垂直组合字符串-

  • 使用MATLAB连接运算符[],并用分号(;)分隔每一行。请注意,在此方法中,每行必须包含相同数量的字符。对于长度不同的字符串,应根据需要使用空格字符填充。

  • 使用char函数。如果字符串的长度不同,char会用尾随空格填充较短的字符串,以便每行具有相同的字符数。

实例

Cree un archivo de script y escriba el siguiente código-

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

Al ejecutar el archivo, muestra el siguiente resultado-

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

Puede combinar horizontalmente las cadenas de la siguiente manera-

  • Utilizando el operador de concatenación de MATLAB[]Y usa comas o espacios para separar la cadena de entrada. Este método mantiene todos los espacios en blanco al final del array de entrada.

  • Utilizando la función de concatenación de cadenas strcat, este método elimina los espacios en blanco al final de la entrada.

实例

Cree un archivo de script y escriba el siguiente código-

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

Al ejecutar el archivo, muestra el siguiente resultado-

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

Combinar strings en un array de celdas

De la discusión anterior se puede ver claramente que combinar cadenas de diferentes longitudes puede ser complicado, ya que todos los strings en el array deben tener la misma longitud. Usamos espacios en blanco al final de las cadenas para hacer que sus longitudes sean iguales.

Sin embargo, el método más eficiente para combinar cadenas es convertir el array de resultados en un array de celdas.

Los arrays de celdas de MATLAB pueden almacenar diferentes tipos y tamaños de datos en un array.

cellstrLa función convierte un array de caracteres en un array de celdas de strings.

实例

Cree un archivo de script y escriba el siguiente código-

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

Al ejecutar el archivo, muestra el siguiente resultado-

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

Funciones de cadena en MATLAB

MATLAB proporciona muchas funciones de cadena para crear, combinar, analizar, comparar y operar con cadenas.

La siguiente tabla resume las funciones de cadena en MATLAB-

FuncionalidadFunción
Funciones para almacenar texto en arrays de caracteres, combinar arrays de caracteres, etc.
blanks

Crear una cadena de caracteres en blanco

cellstrCrear un array de celdas de strings a partir de un array de caracteres
char

Convertir a array de caracteres (cadena)

iscellstrDeterminar si la entrada es un array de celdas de strings
ischarDeterminar si un elemento es un array de caracteres
sprintfFormatear datos en una cadena
strcatConectar strings horizontalmente
strjoinConectar cadenas en un solo string en un array de celdas
Identificar parte de la cadena, función para buscar y reemplazar subcadenas
ischarDeterminar si un elemento es un array de caracteres
isletterElemento de array de letra
isspaceComo elemento de array de espacio en blanco
isstrpropDeterminar si una cadena pertenece a una categoría específica
sscanfLeer datos formateados de una cadena
strfindBuscar una cadena en otro string
strrep查找并替换子字符串
strsplit在指定的分隔符处分割字符串
strtok字符串的选定部分
validatestring检查文本字符串的有效性
symvar确定表达式中的符号变量
regexp匹配正则表达式(区分大小写)
regexpi

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

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

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

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

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

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

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

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

实例

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

格式化字符串

Cree un archivo de script y escriba el siguiente código-

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

Al ejecutar el archivo, muestra el siguiente resultado-

ans =  3141.592654 
   3141.59 
   +3141.59 
      3141.59 
   000003141.59

连接字符串

Cree un archivo de script y escriba el siguiente código-

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

Al ejecutar el archivo, muestra el siguiente resultado-

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

查找和替换字符串

Cree un archivo de script y escriba el siguiente código-

students = {'Zara Ali', 'Neha Bhatnagar', ...}
            'Monica Malik', 'Madhu Gautam', ...
            'Madhu Sharma', 'Bhawna Sharma', ...
            'Nuha Ali', 'Reva Dutta', ...
            'Sunaina Ali', 'Sofia Kabir';
 
%La función strrep busca y reemplaza la subcadena.
new_student = strrep(students(8), 'Reva', 'Poulomi')
%Mostrar nombres
first_names = strtok(students

Al ejecutar el archivo, muestra el siguiente resultado-

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
}

Comparación de cadenas

Cree un archivo de script y escriba el siguiente código-

str1 = 'Esto es prueba'
str2 = 'Esto es texto'
si (strcmp(str1, str2))
   sprintf('%s y %s son iguales', str1, str2)
de lo contrario
   sprintf('%s y %s no son iguales', str1, str2)
fin

Al ejecutar el archivo, muestra el siguiente resultado-

str1 Esto es prueba
str2 Esto es texto
ans = Esto es prueba y Esto es texto no son iguales