Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Crear arreglos de cadenas

Los arreglos de cadenas almacenan fragmentos de texto y proporcionan un conjunto de funciones para trabajar con texto como datos. Puede indexar, remodelar y concatenar arreglos de cadenas al igual que puede hacerlo con arreglos de cualquier otro tipo. También puede acceder a los caracteres de una cadena y añadir texto a cadenas utilizando el operador plus. Para reorganizar cadenas dentro de un arreglo de cadenas, utilice funciones como split, join y sort.

Crear arreglos de cadenas a partir de variables

MATLAB® proporciona arreglos de cadenas para almacenar fragmentos de texto. Cada elemento de un arreglo de cadenas contiene una secuencia de caracteres de 1 por n.

Puede crear una cadena utilizando comillas dobles.

str = "Hello, world"
str = 
"Hello, world"

Como alternativa, puede convertir un vector de caracteres en una cadena utilizando la función string. chr es un vector de caracteres de 1 por 17. str es una cadena de 1 por 1 que tiene el mismo texto que el vector de caracteres.

chr = 'Greetings, friend'
chr = 
'Greetings, friend'
str = string(chr)
str = 
"Greetings, friend"

Cree un arreglo de cadenas que contenga varias cadenas utilizando el operador []. str es un arreglo de cadenas de 2 por 3 que contiene seis cadenas.

str = ["Mercury","Gemini","Apollo";
       "Skylab","Skylab B","ISS"]
str = 2x3 string
    "Mercury"    "Gemini"      "Apollo"
    "Skylab"     "Skylab B"    "ISS"   

Encuentre la longitud de cada cadena en str con la función strlength. Utilice strlength, no length, para determinar el número de caracteres de las cadenas.

L = strlength(str)
L = 2×3

     7     6     6
     6     8     3

Como alternativa, se puede convertir un arreglo de celdas de vectores de caracteres a un arreglo de cadenas utilizando la función string. MATLAB muestra cadenas en arreglos de cadenas con comillas dobles, así como vectores de caracteres en arreglos de celdas con comillas simples.

C = {'Mercury','Venus','Earth'}
C = 1x3 cell
    {'Mercury'}    {'Venus'}    {'Earth'}

str = string(C)
str = 1x3 string
    "Mercury"    "Venus"    "Earth"

Además de vectores de caracteres, puede convertir valores numéricos, de fecha/hora, duración y categóricos a cadenas utilizando la función string.

Convierta un arreglo numérico en un arreglo de cadenas.

X = [5 10 20 3.1416];
string(X)
ans = 1x4 string
    "5"    "10"    "20"    "3.1416"

Convierta un valor de fecha/hora en una cadena.

d = datetime('now');
string(d)
ans = 
"19-Aug-2023 14:31:30"

Además, puede leer texto de archivos en arreglos de cadenas utilizando las funciones readtable, textscan y fscanf.

Crear cadenas vacías y faltantes

Los arreglos de cadenas pueden contener valores vacíos y faltantes. Una cadena vacía contiene cero caracteres. Cuando muestra una cadena vacía, el resultado es un par de comillas dobles sin nada entre ellas (""). La cadena faltante es la cadena equivalente a NaN para arreglos numéricos. Indica cuándo un arreglo de cadenas tiene valores faltantes. Cuando muestra una cadena faltante, el resultado es <missing>, sin comillas simples.

Cree un arreglo de cadenas vacío utilizando la función strings. Cuando llama a strings sin argumentos, devuelve una cadena vacía. Tenga en cuenta que el tamaño de str es 1 por 1, no 0 por 0. Sin embargo, str contiene cero caracteres.

str = strings
str = 
""

Cree un vector de caracteres vacío utilizando comillas simples. Tenga en cuenta que el tamaño de chr es 0 por 0.

chr = ''
chr =

  0x0 empty char array

Cree un arreglo de cadenas donde cada elemento es una cadena vacía. Puede asignar previamente un arreglo de cadenas con la función strings.

str = strings(2,3)
str = 2x3 string
    ""    ""    ""
    ""    ""    ""

Para crear una cadena faltante, convierta un valor faltante utilizando la función string. La cadena faltante se muestra como <missing>.

str = string(missing)
str = 
<missing>

Puede crear un arreglo de caracteres con cadenas vacías y faltantes. Utilice la función ismissing para determinar qué elementos son cadenas con valores faltantes. Tenga en cuenta que la cadena vacía no es una cadena faltante.

str(1) = "";
str(2) = "Gemini";
str(3) = string(missing)
str = 1x3 string
    ""    "Gemini"    <missing>

ismissing(str)
ans = 1x3 logical array

   0   0   1

Compare una cadena faltante con otra cadena. El resultado es siempre 0 (false), aunque compare una cadena faltante con otra cadena faltante.

str = string(missing);
str == "Gemini"
ans = logical
   0

str == string(missing)
ans = logical
   0

Acceder a los elementos de un arreglo de cadenas

Los arreglos de cadenas admiten operaciones de arreglos como la indexación y la remodelación. Utilice la indexación de arreglos para acceder a la primera fila de str y a todas las columnas.

str = ["Mercury","Gemini","Apollo";
       "Skylab","Skylab B","ISS"];
str(1,:)
ans = 1x3 string
    "Mercury"    "Gemini"    "Apollo"

Acceda al segundo elemento de la segunda fila de str.

str(2,2)
ans = 
"Skylab B"

Asigne una nueva cadena fuera de los límites de str. MATLAB amplía el arreglo y rellena elementos no asignados con valores faltantes.

str(3,4) = "Mir"
str = 3x4 string
    "Mercury"    "Gemini"      "Apollo"     <missing>
    "Skylab"     "Skylab B"    "ISS"        <missing>
    <missing>    <missing>     <missing>    "Mir"    

Acceder a caracteres dentro de cadenas

Puede indexar en un arreglo de cadenas utilizando llaves, {}, para acceder directamente a los caracteres. Utilice llaves cuando necesite acceder a los caracteres y modificarlos dentro de un elemento de cadena. La indexación con llaves proporciona compatibilidad para código que podría funcionar con arreglos de cadenas o arreglos de celdas de vectores de caracteres. Pero, siempre que sea posible, utilice funciones de cadenas para trabajar con los caracteres de las cadenas.

Acceda al segundo elemento de la segunda fila con llaves. chr es un vector de caracteres, no una cadena.

str = ["Mercury","Gemini","Apollo";
       "Skylab","Skylab B","ISS"];
chr = str{2,2}
chr = 
'Skylab B'

Acceda al vector de caracteres y devuelva los tres primeros caracteres.

str{2,2}(1:3)
ans = 
'Sky'

Busque los caracteres de espacio de una cadena y reemplácelos por guiones. Utilice la función isspace para inspeccionar caracteres individuales dentro de la cadena. isspace devuelve un vector lógico que contiene un valor verdadero siempre que hay un carácter de espacio. Por último, muestre el elemento de cadena modificado, str(2,2).

TF = isspace(str{2,2})
TF = 1x8 logical array

   0   0   0   0   0   0   1   0

str{2,2}(TF) = "-";
str(2,2)
ans = 
"Skylab-B"

Tenga en cuenta que, en este caso, también puede reemplazar los espacios utilizando la función replace, sin recurrir a la indexación con llaves.

replace(str(2,2)," ","-")
ans = 
"Skylab-B"

Concatenar cadenas en un arreglo de cadenas

Concatene cadenas en un arreglo de cadenas del mismo modo que concatenaría arreglos de cualquier otro tipo.

Concatene dos arreglos de cadenas utilizando corchetes, [].

str1 = ["Mercury","Gemini","Apollo"];
str2 = ["Skylab","Skylab B","ISS"];
str = [str1 str2]
str = 1x6 string
    "Mercury"    "Gemini"    "Apollo"    "Skylab"    "Skylab B"    "ISS"

Trasponga str1 y str2. Concaténelos y, a continuación, concatene verticalmente los encabezados de las columnas en el arreglo de cadenas. Cuando concatena vectores de caracteres en un arreglo de cadenas, los vectores de caracteres se convierten automáticamente en cadenas.

str1 = str1';
str2 = str2';
str = [str1 str2];
str = [["Mission:","Station:"] ; str]
str = 4x2 string
    "Mission:"    "Station:"
    "Mercury"     "Skylab"  
    "Gemini"      "Skylab B"
    "Apollo"      "ISS"     

Añadir texto a cadenas

Para añadir texto a cadenas, utilice el operador plus, +. El operador plus añade texto a cadenas, pero no cambia el tamaño de un arreglo de cadenas.

Añada un apellido a un arreglo de nombres. Si añade un vector de caracteres a cadenas, entonces el vector de caracteres se convierte automáticamente en una cadena.

names = ["Mary";"John";"Elizabeth";"Paul";"Ann"];
names = names + ' Smith'
names = 5x1 string
    "Mary Smith"
    "John Smith"
    "Elizabeth Smith"
    "Paul Smith"
    "Ann Smith"

Añada distintos apellidos. Puede añadir texto a un arreglo de cadenas desde un arreglo de cadenas o desde un arreglo de celdas de vectores de caracteres. Cuando añade arreglos no escalares, estos deben tener el mismo tamaño.

names = ["Mary";"John";"Elizabeth";"Paul";"Ann"];
lastnames = ["Jones";"Adams";"Young";"Burns";"Spencer"];
names = names + " " + lastnames
names = 5x1 string
    "Mary Jones"
    "John Adams"
    "Elizabeth Young"
    "Paul Burns"
    "Ann Spencer"

Añada una cadena faltante. Cuando añade una cadena faltante con el operador plus, la salida es una cadena faltante.

str1 = "Jones";
str2 = string(missing);
str1 + str2
ans = 
<missing>

Dividir, unir y ordenar arreglos de cadenas

MATLAB proporciona un amplio conjunto de funciones para trabajar con arreglos de cadenas. Por ejemplo, puede utilizar las funciones split, join y sort para reorganizar el arreglo de cadenas names de forma que los nombres se ordenen alfabéticamente por apellido.

Divida names en los caracteres de espacio. Dividir modifica names de forma que pasa de ser un arreglo de cadenas de 5 por 1 a ser un arreglo de 5 por 2.

names = ["Mary Jones";"John Adams";"Elizabeth Young";"Paul Burns";"Ann Spencer"];
names = split(names)
names = 5x2 string
    "Mary"         "Jones"  
    "John"         "Adams"  
    "Elizabeth"    "Young"  
    "Paul"         "Burns"  
    "Ann"          "Spencer"

Cambie las columnas de names para que los apellidos aparezcan en la primera columna. Añada una coma después de cada apellido.

names = [names(:,2) names(:,1)];
names(:,1) = names(:,1) + ','
names = 5x2 string
    "Jones,"      "Mary"     
    "Adams,"      "John"     
    "Young,"      "Elizabeth"
    "Burns,"      "Paul"     
    "Spencer,"    "Ann"      

Una los apellidos y los nombres. La función join sitúa un carácter de espacio entre las cadenas que une. Después de la unión, names es un arreglo de cadenas de 5 por 1.

names = join(names)
names = 5x1 string
    "Jones, Mary"
    "Adams, John"
    "Young, Elizabeth"
    "Burns, Paul"
    "Spencer, Ann"

Ordene los elementos de names para que aparezcan en orden alfabético.

names = sort(names)
names = 5x1 string
    "Adams, John"
    "Burns, Paul"
    "Jones, Mary"
    "Spencer, Ann"
    "Young, Elizabeth"

Consulte también

| | | | | | | |

Temas relacionados