Main Content

string

Arreglo de cadenas

Descripción

En MATLAB®, puede representar texto utilizando arreglos de cadenas. Cada elemento de un arreglo de cadenas almacena una secuencia de caracteres. Las secuencias pueden tener diferentes longitudes sin relleno, como "yes" y "no". Los arreglos de cadenas que solo tienen un elemento también se denominan escalares de cadena.

Puede indexar, remodelar y concatenar arreglos de cadenas utilizando operaciones de arreglos estándar y también puede añadir texto en los mismos, utilizando el operador +. Si un arreglo de cadenas representa números, puede convertirlo en un arreglo numérico utilizando la función double.

Creación

Puede crear un escalar de cadena encerrando un fragmento de texto entre comillas dobles.

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

Para crear un arreglo de cadenas, puede concatenar escalares de cadena utilizando corchetes, del mismo modo que puede concatenar números en una matriz numérica.

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

También puede convertir variables de diferentes tipos de datos en arreglos de cadenas utilizando la función string, que se describe más abajo.

Descripción

ejemplo

str = string(A) convierte el arreglo de entrada en un arreglo de cadenas. Por ejemplo, si A es un vector numérico [1 20 300], str es un arreglo de cadenas del mismo tamaño, ["1" "20" "300"].

ejemplo

str = string(A, dateFmt), donde A es un arreglo de datetime o duration, aplica el formato especificado, como "HH:mm:ss". También puede especificar la configuración local como una entrada independiente como, por ejemplo, "en_US".

Argumentos de entrada

expandir todo

Arreglo de entrada. El tipo de datos de A determina la forma en que string convierte A en un arreglo de cadenas.

Tipo de entrada

Notas de conversión

Entrada de muestra

Salida de muestra

char

Cada fila se convierte en un escalar de cadena

Si A está vacío, '', la salida es "", un escalar de cadena sin caracteres

1×3 char array
    'foo'

1×1 string array
    "foo"
2×3 char array
    'foo'
    'bar'
2×1 string array
    "foo"
    "bar"

Arreglo de celdas

Cada elemento de un arreglo de celdas se debe poder convertir en una cadena de 1 por 1.

{137,'foo'}

["137" "foo"]

Arreglo categórico

Las cadenas de salida son los nombres de las categorías correspondientes a cada elemento de A.

1x3 categorical array
    red    green    blue
1x3 string array
    "red"    "green"    "blue"

Arreglo numérico

Formato de salida y precisión equivalentes al uso de num2str. Utilice compose para especificar un formato más preciso.

Si A está vacío, [], la salida es un arreglo de cadenas vacío de 0 por 0.

Utilice char para convertir a ASCII o puntos Unicode.

[137 3.1e-3 8.5e-6]

["137" "0.0031" "8.5e-06"]

Arreglo de datetime

Para especificar un formato y configuración local, consulte dateFmt.

datetime(2020,6,1)

"01-Jun-2020"

Arreglo lógico

La función logical no acepta entradas de cadenas, por lo que la conversión es unidireccional.

logical([0 1])

["false" "true"]

Los valores faltantes convertidos, como los valores NaN, NaT y <undefined> categóricos, se muestran como <missing>.

Formato de fecha y configuración local, especificados como vectores de caracteres independientes o escalares de cadena. La entrada A debe ser del tipo datetime, duration o calendarDuration.

Si no especifica un formato, string utiliza el valor de la propiedad Format de A. Para especificar solo la configuración local, utilice un arreglo vacío como marcador de posición para el formato, [].

Ejemplo: string(A, "yyyy-MM-dd")

Ejemplo: string(A, "yyyy-MM-dd","en_US")

Ejemplo: string(A, [],"en_US")

El tipo de formatos compatible depende del tipo de datos de A.

  • Los formatos de datetime pueden incluir combinaciones de unidades y delimitadores, como "yyyy-MMM-dd HH:mm:ss.SSS". Para obtener más información, consulte la propiedad Format para arreglos datetime.

  • Los formatos de duration son de un solo carácter (y, d, h, m o s) o una de las siguientes combinaciones:

    • "dd:hh:mm:ss"

    • "hh:mm:ss"

    • "mm:ss"

    • "hh:mm"

    • Cualquiera de los anteriores, con hasta nueve caracteres S para indicar los dígitos fraccionarios de segundo, como "hh:mm:ss.SSSS"

  • Los formatos de calendarDuration pueden incluir combinaciones de los caracteres y, q, m, w, d y t, en orden de mayor a menor unidad de tiempo, como "ym". Para obtener más información sobre los formatos duration y calendarDuration, consulte Establecer el formato de visualización de fechas y horas.

La configuración local afecta al idioma utilizado para representar determinados componentes de las fechas y horas, como los nombres de los meses. Los valores válidos son:

  • "system", para especificar la configuración local del sistema.

  • Un vector de caracteres de la forma xx_YY, donde xx es un código ISO 639-1 de dos letras minúsculas que especifica un idioma e YY es un código ISO 3166-1 alpha-2 de dos letras mayúsculas que especifica un país. Para ver valores de muestra, consulte el argumento de par nombre-valor Locale de la función datetime.

Argumentos de salida

expandir todo

Arreglo de salida, devuelto como arreglo de cadenas.

MATLAB almacena todos los caracteres como caracteres Unicode® utilizando la codificación UTF-16. Para obtener más información sobre Unicode, consulte Unicode.

Ejemplos

contraer todo

Para encontrar las palabras únicas en una cadena, divídala según los caracteres de espacio y llame a la función unique.

En primer lugar, cree un escalar de cadena.

str = "A horse! A horse! My kingdom for a horse!"
str = 
"A horse! A horse! My kingdom for a horse!"

Elimine el signo de exclamación.

str = erase(str,"!")
str = 
"A horse A horse My kingdom for a horse"

Convierta todas las letras de str en caracteres en minúscula.

str = lower(str)
str = 
"a horse a horse my kingdom for a horse"

Divida str según los caracteres de espacio usando la función split. split descarta los caracteres de espacio y devuelve el resultado como un arreglo de cadenas.

str = split(str)
str = 9x1 string
    "a"
    "horse"
    "a"
    "horse"
    "my"
    "kingdom"
    "for"
    "a"
    "horse"

Encuentre las palabras únicas en str utilizando la función unique.

str = unique(str)
str = 5x1 string
    "a"
    "for"
    "horse"
    "kingdom"
    "my"

A = 'Four score and seven years ago'
A = 
'Four score and seven years ago'
str = string(A)
str = 
"Four score and seven years ago"

str contiene los mismos caracteres que A. Pero mientras que A es un vector de caracteres, str es un escalar de cadena.

c = size(A)
c = 1×2

     1    30

s = size(str)
s = 1×2

     1     1

Para devolver el número de caracteres de str, utilice la función strlength.

n = strlength(str)
n = 30

Convierta un arreglo de celdas de vectores de caracteres en un arreglo de cadenas.

A = {'Mercury','Gemini','Apollo';...
     'Skylab','Skylab B','ISS'}
A = 2x3 cell
    {'Mercury'}    {'Gemini'  }    {'Apollo'}
    {'Skylab' }    {'Skylab B'}    {'ISS'   }

str = string(A)
str = 2x3 string
    "Mercury"    "Gemini"      "Apollo"
    "Skylab"     "Skylab B"    "ISS"   

Para acceder al segundo elemento de la primera fila de str, indexe utilizando paréntesis. Puede acceder a las cadenas de un arreglo de cadenas con indexación matricial, igual que accedería a los elementos de un arreglo numérico.

str(1,2)
ans = 
"Gemini"

Acceda a la tercera columna.

str(:,3)
ans = 2x1 string
    "Apollo"
    "ISS"

A = [77 65 84 76 65 66]
A = 1×6

    77    65    84    76    65    66

str = string(A)
str = 1x6 string
    "77"    "65"    "84"    "76"    "65"    "66"

str es un arreglo de cadenas en el que cada elemento representa un número de A. Observe que string no trata los números como valores ASCII o Unicode®, como hace la función char.

Cree un arreglo de cadenas en la que cada elemento representa un número. Para convertir el arreglo de cadenas en un arreglo numérico, utilice la función double.

str = ["256","3.1416","8.9e-3"]
str = 1x3 string
    "256"    "3.1416"    "8.9e-3"

X = double(str)
X = 1×3

  256.0000    3.1416    0.0089

Cuando el argumento de entrada es un arreglo de cadenas, la función double trata cada elemento como la representación de un valor de punto flotante. Sin embargo, cuando la entrada es un arreglo de caracteres, double convierte cada carácter en un número que representa su valor Unicode®.

También puede utilizar la función str2double. La función str2double resulta adecuada cuando el argumento de entrada puede ser un arreglo de cadenas, un arreglo de caracteres o un arreglo de celdas de vectores de caracteres.

Y = str2double(str)
Y = 1×3

  256.0000    3.1416    0.0089

C = '2.7183';
Z = str2double(C)
Z = 2.7183

Convertir de un arreglo de duración a una cadena. Para más información relacionada con la conversión de tipos de datos comunes a cadenas, consulte Convert Between Text and datetime or duration Values.

Cree un arreglo de duration.

D = hours(23:25) + minutes(8) + seconds(1.2345)
D = 1x3 duration
   23.134 hr   24.134 hr   25.134 hr

Convierta D en un arreglo de cadenas.

str = string(D)
str = 1x3 string
    "23.134 hr"    "24.134 hr"    "25.134 hr"

str es un arreglo de cadenas con un valor de duración por elemento. str es del mismo tamaño que D.

Especifique el formato de los valores de duración en str.

str = string(D,'hh:mm')
str = 1x3 string
    "23:08"    "24:08"    "25:08"

Sugerencias

  • Para obtener una lista de funciones para crear y manipular texto en arreglos de cadenas, consulte Caracteres y cadenas.

  • Si el argumento de entrada es un objeto, debe pertenecer a una clase que implemente un método string para representar el objeto como una cadena.

  • Convertir un arreglo char a un tipo numérico producirá un arreglo de los valores de código Unicode correspondientes. El texto de las cadenas no se convierte de esta forma. Convertir una cadena que no representa un valor numérico único a double producirá un resultado NaN. Para obtener más información, consulte Valores Unicode y ASCII.

Capacidades ampliadas

Generación de código HDL
Genere código Verilog y VHDL para diseños FPGA y ASIC mediante HDL Coder™.

Historial de versiones

Introducido en R2016b