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.

Ventajas de utilizar matrices categóricas

Representación natural de datos categóricos

es un tipo de datos para almacenar datos con valores de un conjunto finito de categorías discretas.categorical Una alternativa común al uso de matrices categóricas es usar matrices de caracteres o matrices de celdas de vectores de caracteres. Para comparar valores en matrices de caracteres y matrices de celdas de vectores de caracteres, debe usar lo que puede ser engorroso.strcmp Con las matrices categóricas, puede utilizar el operador lógico () para comparar elementos de la misma manera que compara matrices numéricas.eq== La otra alternativa común al uso de matrices categóricas es almacenar datos categóricos mediante números enteros en matrices numéricas. El uso de matrices numéricas pierde toda la información descriptiva útil de los nombres de categoría, y también tiende a sugerir que los valores enteros tienen su significado numérico habitual, que, para los datos categóricos, no lo hacen.

Ordenación matemática para vectores de caracteres

Las matrices categóricas son contenedores convenientes y eficientes en memoria para datos no numéricos con valores de un conjunto finito de categorías discretas. Son especialmente útiles cuando las categorías tienen un orden matemático significativo, como una matriz con entradas del conjunto discreto de categorías donde.{'small','medium','large'}small < medium < large

Un orden que no sea alfabético no es posible con matrices de caracteres o matrices de celdas de vectores de caracteres. Por lo tanto, las comparaciones de desigualdad, tales como mayor y menor que, no son posibles. Con las matrices categóricas, puede usar operaciones relacionales para probar la igualdad y realizar comparaciones de elementos que tienen un orden matemático significativo.

Reduzca los requisitos de memoria

En este ejemplo se muestra cómo comparar la memoria necesaria para almacenar datos como una matriz de vectores de caracteres frente a una matriz categórica. Las matrices categóricas tienen categorías que se definen como vectores de caracteres, que pueden ser costosas de almacenar y manipular en una matriz de vectores de caracteres o matriz de celdas.char Las matrices categóricas almacenan solo una copia de cada nombre de categoría, a menudo reduciendo la cantidad de memoria necesaria para almacenar la matriz.

Cree una matriz de celdas de ejemplo de vectores de caracteres.

state = [repmat({'MA'},25,1);repmat({'NY'},25,1);...     repmat({'CA'},50,1);...     repmat({'MA'},25,1);repmat({'NY'},25,1)];

Mostrar información sobre la variable.state

whos state
  Name         Size            Bytes  Class    Attributes    state      150x1             17400  cell                

La variable es una matriz de celdas de vectores de caracteres que requieren 17.400 bytes de memoria.state

Convertir a una matriz categórica.state

state = categorical(state);

Visualice las categorías discretas en la variable.state

categories(state)
ans = 3x1 cell array
    {'CA'}
    {'MA'}
    {'NY'}

contiene 150 elementos, pero solo tres categorías distintas.state

Mostrar información sobre la variable.state

whos state
  Name         Size            Bytes  Class          Attributes    state      150x1               500  categorical               

Hay una reducción significativa en la memoria necesaria para almacenar la variable.

Consulte también

|

Ejemplos relacionados

Más acerca de