Main Content

Arreglos de celdas de vectores de caracteres

Para almacenar texto como un vector de caracteres, enciérrelo entre comillas simples. Por lo general, un vector de caracteres tiene texto que se considera un único dato, como un nombre de archivo o una etiqueta para una gráfica. Si dispone de muchos fragmentos de texto, como una lista de nombres de archivo, puede almacenarlos en un arreglo de celdas. Un arreglo de celdas cuyos elementos sean todos vectores de caracteres es un arreglo de celdas de vectores de caracteres.

Nota

  • La forma recomendada de almacenar texto es utilizar arreglos de cadenas. Si crea variables que tienen el tipo de datos string, almacénelas en arreglos de cadenas, no en arreglos de celdas. Para obtener más información, consulte Texto en arreglos de cadenas y caracteres y Update Your Code to Accept Strings.

  • Aunque la frase arreglo de celdas de cadenas se ha utilizado frecuentemente para describir este tipo de arreglos de celdas, la frase ya no es precisa porque este tipo de arreglo de celdas contiene vectores de caracteres, no cadenas.

Crear un arreglo de celdas de vectores de caracteres

Para crear un arreglo de celdas de vectores de caracteres, utilice llaves ({}), al igual que haría para crear cualquier arreglo de celdas. Por ejemplo, utilice un arreglo de celdas de vectores de caracteres para almacenar una lista de nombres.

C = {'Li','Sanchez','Jones','Yang','Larson'}
C = 1x5 cell
    {'Li'}    {'Sanchez'}    {'Jones'}    {'Yang'}    {'Larson'}

Los vectores de caracteres en C pueden tener diferentes longitudes porque un arreglo de celdas no requiere que su contenido tenga el mismo tamaño. Para determinar las longitudes de los vectores de caracteres en C, utilice la función strlength.

L = strlength(C)
L = 1×5

     2     7     5     4     6

Acceder a los vectores de caracteres en un arreglo de celdas

Para acceder a los vectores de caracteres en un arreglo de celdas, indexe en el arreglo de celdas mediante llaves ({}). Extraiga el contenido de la primera celda y almacénelo como un vector de caracteres.

C = {'Li','Sanchez','Jones','Yang','Larson'};
chr = C{1}
chr = 
'Li'

Asigne un vector de caracteres diferente a la primera celda.

C{1} = 'Yang'
C = 1x5 cell
    {'Yang'}    {'Sanchez'}    {'Jones'}    {'Yang'}    {'Larson'}

Para hacer referencia a un subconjunto de celdas, en lugar de a su contenido, indexe mediante paréntesis.

C(1:3)
ans = 1x3 cell
    {'Yang'}    {'Sanchez'}    {'Jones'}

Aunque puede acceder al contenido de las celdas mediante la indexación, la mayoría de las funciones que aceptan arreglos de celdas como entradas operan sobre el arreglo de celdas completo. Por ejemplo, puede utilizar la función strcmp para comparar el contenido de C con un vector de caracteres. strcmp devuelve 1, donde hay una coincidencia, y 0 en caso contrario.

TF = strcmp(C,'Yang')
TF = 1x5 logical array

   1   0   0   1   0

Puede sumar TF para averiguar el número de coincidencias.

num = sum(TF)
num = 2

Utilice TF como índices lógicos para devolver las coincidencias en C. Si indexa mediante paréntesis, el resultado será un arreglo de celdas que contenga únicamente las coincidencias.

M = C(TF)
M = 1x2 cell
    {'Yang'}    {'Yang'}

Convertir arreglos de celdas a arreglos de cadenas

MATLAB® y los demás productos de MathWorks® son compatibles con los arreglos de cadenas. Por lo tanto, se recomienda utilizar arreglos de cadenas en lugar de arreglos de celdas de vectores de caracteres. (Sin embargo, las funciones de MATLAB que aceptan arreglos de cadenas como entradas también aceptan vectores de caracteres y arreglos de celdas de vectores de caracteres).

Puede convertir arreglos de celdas de vectores de caracteres a arreglos de cadenas. Para convertir un arreglo de celdas de vectores de caracteres, utilice la función string.

C = {'Li','Sanchez','Jones','Yang','Larson'}
C = 1x5 cell
    {'Li'}    {'Sanchez'}    {'Jones'}    {'Yang'}    {'Larson'}

str = string(C)
str = 1x5 string
    "Li"    "Sanchez"    "Jones"    "Yang"    "Larson"

De hecho, la función string convierte cualquier arreglo de celdas, siempre que el contenido se pueda convertir a cadenas.

C2 = {5, 10, 'some text', datetime('today')}
C2=1×4 cell array
    {[5]}    {[10]}    {'some text'}    {[31-Aug-2022]}

str2 = string(C2)
str2 = 1x4 string
    "5"    "10"    "some text"    "31-Aug-2022"

Consulte también

| | | |

Temas relacionados