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 categóricas

En este ejemplo se muestra cómo crear una matriz categórica. es un tipo de datos para almacenar datos con valores de un conjunto finito de categorías discretas.categorical Estas categorías pueden tener un orden natural, pero no es necesario. Una matriz categórica proporciona almacenamiento eficiente y manipulación conveniente de los datos, mientras que también mantiene nombres significativos para los valores. Las matrices categóricas se utilizan a menudo en una tabla para definir grupos de filas.

De forma predeterminada, las matrices categóricas contienen categorías que no tienen ningún orden matemático. Por ejemplo, el conjunto discreto de categorías de mascotas no tiene un orden matemático significativo, por lo que MATLAB® utiliza el orden alfabético. las matrices categóricas contienen categorías que tienen un orden matemático significativo.{'dog' 'cat' 'bird'}{'bird' 'cat' 'dog'}Ordinal Por ejemplo, el conjunto discreto de categorías de tamaño tiene el orden matemático.{'small', 'medium', 'large'}small < medium < large

Al crear matrices categóricas a partir de matrices de celdas de vectores de caracteres o matrices de cadenas, se quitan los espacios iniciales y finales. Por ejemplo, si especifica el texto {' cat ' ' Dog '} como categorías, entonces cuando los convierta a categorías se convertirán en {' cat ' ' Dog '}.

Crear matriz categórica de matriz de celdas de vectores de caracteres

Puede utilizar la función para crear una matriz categórica a partir de una matriz numérica, matriz lógica, matriz de cadenas, matriz de celdas de vectores de caracteres o una matriz categórica existente.categorical

Cree una matriz de celdas de 1 por 11 de vectores de caracteres que contengan nombres de estado de Nueva Inglaterra.

state = {'MA','ME','CT','VT','ME','NH','VT','MA','NH','CT','RI'};

Convierta la matriz de celdas, en una matriz categórica que no tenga ningún orden matemático.state

state = categorical(state)
state = 1x11 categorical array
  Columns 1 through 9

     MA      ME      CT      VT      ME      NH      VT      MA      NH 

  Columns 10 through 11

     CT      RI 

 class(state)
ans =  'categorical' 

Enumere las categorías discretas en la variable.state

categories(state)
ans = 6x1 cell array
    {'CT'}
    {'MA'}
    {'ME'}
    {'NH'}
    {'RI'}
    {'VT'}

Las categorías se enumeran en orden alfabético.

Crear matriz categórica ordinal de matriz de celdas de vectores de caracteres

Crear una matriz de 1 por 8 celdas de vectores de caracteres que contengan los tamaños de ocho objetos.

AllSizes = {'medium','large','small','small','medium',...             'large','medium','small'};

La matriz de celdas, tiene tres valores distintos:, y.AllSizes'large''medium''small' Con la matriz de celdas de vectores de caracteres, no hay una manera conveniente de indicar eso.small < medium < large

Convierta la matriz de celdas, en una matriz categórica ordinal.AllSizes Se usa para especificar los valores y, que definen las categorías.valuesetsmallmediumlarge Para una matriz categórica ordinal, la primera categoría especificada es la más pequeña y la última categoría es la más grande.

valueset = {'small','medium','large'}; sizeOrd = categorical(AllSizes,valueset,'Ordinal',true)
sizeOrd = 1x8 categorical array
  Columns 1 through 6

     medium      large      small      small      medium      large 

  Columns 7 through 8

     medium      small 

 class(sizeOrd)
ans =  'categorical' 

El orden de los valores de la matriz categórica, permanece sin cambios.sizeOrd

Enumere las categorías discretas en la variable categórica,.sizeOrd

categories(sizeOrd)
ans = 3x1 cell array
    {'small' }
    {'medium'}
    {'large' }

Las categorías se enumeran en el orden especificado para que coincida con la ordenación matemática.small < medium < large

Crear matriz categórica ordinal mediante la discretización de datos numéricos

Cree un vector de 100 números aleatorios entre cero y 50.

x = rand(100,1)*50;

Utilice la función para crear una matriz categórica mediante la discretización de los valores de.discretizex Coloque todos los valores entre cero y 15 en la primera ubicación, todos los valores entre 15 y 35 en la segunda ubicación, y todos los valores entre 35 y 50 en la tercera ubicación. Cada bin incluye el extremo izquierdo, pero no incluye el extremo derecho.

catnames = {'small','medium','large'}; binnedData = discretize(x,[0 15 35 50],'categorical',catnames);

es una matriz categórica ordinal 100-by-1 con tres categorías, tal que.binnedDatasmall < medium < large

Utilice la función para imprimir el número de elementos de cada categoría.summary

summary(binnedData)
     small       30       medium      35       large       35  

Crear matriz categórica a partir de matriz de cadenas

A partir de R2016b, puede crear matrices de cadenas con la función y convertirlas a una matriz categórica.string

Cree una matriz de cadenas que contenga nombres de planetas.

str = string({'Earth','Jupiter','Neptune','Jupiter','Mars','Earth'})
str = 1x6 string array
    "Earth"    "Jupiter"    "Neptune"    "Jupiter"    "Mars"    "Earth"

Convertir a una matriz categórica.str

planets = categorical(str)
planets = 1x6 categorical array
     Earth      Jupiter      Neptune      Jupiter      Mars      Earth 

Agregue elementos que faltan y conviértalo en una matriz categórica.str Donde tiene valores faltantes, tiene valores no definidos.strplanets

str(8) = 'Mars'
str = 1x8 string array
  Columns 1 through 6

    "Earth"    "Jupiter"    "Neptune"    "Jupiter"    "Mars"    "Earth"

  Columns 7 through 8

    <missing>    "Mars"

planets = categorical(str)
planets = 1x8 categorical array
  Columns 1 through 6

     Earth      Jupiter      Neptune      Jupiter      Mars      Earth 

  Columns 7 through 8

     <undefined>      Mars 

Consulte también

| | |

Ejemplos relacionados

Más acerca de