Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Crear matrices de cadenas

Las matrices de cadenas se introdujeron en R2016b. Las matrices de cadenas almacenan fragmentos de texto y proporcionan un conjunto de funciones para trabajar con texto como datos. Puede indexar, cambiar la forma y concatenar matrices de cadenas tal y como puede con matrices de cualquier otro tipo. También puede tener acceso a los caracteres de una cadena y anexar texto a cadenas mediante el operador.plus Para reorganizar las cadenas dentro de una matriz de cadenas, use funciones como, y.splitjoinsort

Crear matrices de cadenas a partir de variables

MATLAB® proporciona matrices de cadenas para almacenar fragmentos de texto. Cada elemento de una matriz de cadenas contiene una secuencia de caracteres de 1 por n.

A partir de R2017a, puede crear una cadena mediante comillas dobles.

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

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

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

Cree una matriz de cadena que contenga varias cadenas mediante el operador. es una matriz de cadenas de 2 por 3 que contiene seis cadenas.[]str

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

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

L = strlength(str)
L = 2×3

     7     6     6
     6     8     3

Como alternativa, puede convertir una matriz de celdas de vectores de caracteres a una matriz de cadenas mediante la función.string MATLAB muestra cadenas en matrices de cadenas con comillas dobles y muestra vectores de caracteres en matrices de celdas con comillas simples.

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

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

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

Convierta una matriz numérica en una matriz de cadenas.

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

Convierta un valor DateTime en una cadena.

d = datetime('now'); string(d)
ans =  "03-Feb-2019 10:12:54" 

Además, puede leer texto de archivos en matrices de cadenas mediante el, y funciones.readtabletextscanfscanf

Crear cadenas vacías y faltantes

Las matrices de cadenas pueden contener valores vacíos y faltantes. Una cadena vacía contiene cero caracteres. Cuando se muestra una cadena vacía, el resultado es un par de comillas dobles sin nada entre ellos ()."" La cadena que falta es la cadena equivalente a para matrices numéricas.Nan Indica dónde una matriz de cadenas tiene valores faltantes. Cuando se muestra una cadena que falta, el resultado es, sin comillas.<missing>

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

str = strings
str =  "" 

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

chr = ''
chr =    0x0 empty char array 

Cree una matriz de cadenas donde cada elemento sea una cadena vacía. Puede preasignar una matriz de cadenas con la función.strings

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

Para crear una cadena que falta, convierta un valor que falta utilizando la función.string La cadena que falta aparece como.<missing>

str = string(missing)
str =  <missing> 

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

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

ismissing(str)
ans = 1x3 logical array

   0   0   1

Compare una cadena que falta con otra cadena. El resultado es Always (), incluso cuando se compara una cadena que falta con otra cadena que falta.0false

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

str == string(missing)
ans = logical
   0

Elementos de acceso de matriz de cadenas

Las matrices de cadenas admiten operaciones de matriz, como la indexación y la remodelación. Utilice la indización de matrices para tener acceso a la primera fila y todas las columnas.str

str = ["Mercury","Gemini","Apollo";        "Skylab","Skylab B","ISS"]; str(1,:)
ans = 1x3 string array
    "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 expande la matriz y rellena los elementos no asignados con valores faltantes.

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

Acceder a caracteres dentro de cadenas

Puede indexar en una matriz de cadenas mediante llaves, para tener acceso a los caracteres directamente.{} Use llaves cuando necesite acceder y modificar caracteres dentro de un elemento de cadena. La indexación con llaves proporciona compatibilidad para el código que podría funcionar con matrices de cadenas o matrices de vectores de caracteres. Pero siempre que sea posible, utilice las funciones de cadena para trabajar con los caracteres de las cadenas.

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

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 en una cadena y reemplácelo por guiones. Utilice la función para inspeccionar caracteres individuales dentro de la cadena. Devuelve un vector lógico que contiene un valor verdadero siempre que exista un carácter de espacio.isspaceisspace 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 mediante la función, sin recurrir a la indexación de llaves.replace

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

Concatenar cadenas en String array

Concatenar cadenas en una matriz de cadenas al igual que concatenaría matrices de cualquier otro tipo.

Concatenar dos matrices de cadenas utilizando corchetes,.[]

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

Transponer y.str1str2 Concatenarlos y, a continuación, concatenar verticalmente encabezados de columna en la matriz de cadenas. Cuando se concatenan vectores de caracteres en una matriz 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 array
    "Mission:"    "Station:"
    "Mercury"     "Skylab"  
    "Gemini"      "Skylab B"
    "Apollo"      "ISS"     

Anexar texto a cadenas

Para anexar texto a cadenas, utilice el operador,.plus+ El operador anexa texto a cadenas, pero no cambia el tamaño de una matriz de cadenas.plus

Anexar un apellido a una matriz de nombres. Si anexa un vector de caracteres a cadenas, el vector de caracteres se convierte automáticamente en una cadena.

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

Anexar diferentes apellidos. Puede anexar texto a una matriz de cadenas de una matriz de cadenas o de una matriz de celdas de vectores de caracteres. Al agregar matrices no escalares, deben tener el mismo tamaño.

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

Anexar una cadena que falta. Cuando se anexa una cadena que falta con el operador Plus, la salida es una cadena que falta.

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

Split, join y Sort String array

MATLAB proporciona un amplio conjunto de funciones para trabajar con matrices de cadenas. Por ejemplo, puede usar el, y funciones para reorganizar la matriz de cadenas para que los nombres están en orden alfabético por Apellido.splitjoinsortnames

Dividir en los caracteres espaciales.names Dividir los cambios de una matriz de cadenas de 5 por 1 en una matriz de 5 por 2.names

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

Cambie las columnas de modo que los apellidos estén en la primera columna.names Agregue una coma después de cada apellido.

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

Únase a los apellidos y apellidos. La función coloca un carácter de espacio entre las cadenas a las que se une.join Después de la Unión, es una matriz de cadenas de 5 por 1.names

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

Ordene los elementos de modo que estén en orden alfabético.names

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

Consulte también

| | | | | | | |

Temas relacionados