Main Content

Leer datos de hojas de cálculo en una tabla

La mejor manera de representar datos de hojas de cálculo en MATLAB® es en una tabla, que puede almacenar una combinación de datos numéricos y de texto, así como nombres de variables y filas. Puede leer datos en tablas de manera interactiva o programática. Para seleccionar datos de manera interactiva, haga clic en Import data en la pestaña Home, en la sección Variable. Para importar datos de manera programática, use una de las siguientes funciones:

  • readtable: leer una sola hoja de cálculo.

  • spreadsheetDatastore: leer varias hojas de cálculo o archivos.

Este ejemplo muestra cómo importar datos de hojas de cálculo de manera programática usando ambas funciones. Los datos de muestra, airlinesmall_subset.xlsx, contienen una hoja para cada año entre 1996 y 2008. Los nombres de las hojas corresponden al año, como 2003.

Leer todos los datos de una hoja de cálculo

Llame a readtable para leer todos los datos de la hoja de cálculo llamada 2008 y, después, muestre solo las 10 primeras filas y columnas. Especifique el nombre de la hoja de cálculo usando el argumento de par nombre-valor Sheet. Si sus datos están en la primera hoja de cálculo del archivo, no tiene que especificar Sheet.

T = readtable('airlinesmall_subset.xlsx','Sheet','2008');
T(1:10,1:10)
ans=10×10 table
    Year    Month    DayofMonth    DayOfWeek    DepTime    CRSDepTime    ArrTime    CRSArrTime    UniqueCarrier    FlightNum
    ____    _____    __________    _________    _______    __________    _______    __________    _____________    _________

    2008      1           3            4         1012         1010        1136         1135          {'WN'}           752   
    2008      1           4            5         1303         1300        1411         1415          {'WN'}          1161   
    2008      1           6            7         2134         2115        2242         2220          {'WN'}          1830   
    2008      1           7            1         1734         1655          54           30          {'WN'}           302   
    2008      1           8            2         1750         1755        2018         2035          {'WN'}          1305   
    2008      1           9            3          640          645         855          905          {'WN'}           896   
    2008      1          10            4         1943         1945        2039         2040          {'WN'}           120   
    2008      1          11            5         1303         1305        1401         1400          {'WN'}          1685   
    2008      1          13            7         1226         1230        1415         1400          {'WN'}          1118   
    2008      1          14            1         1337         1340        1623         1630          {'WN'}           730   

Leer el rango seleccionado de una hoja de cálculo específica

En la hoja de cálculo llamada 1996, lea solo 10 filas de datos de las primeras 5 columnas especificando un rango, 'A1:E11'. La función readtable devuelve una tabla de 10 por 5.

T_selected = readtable('airlinesmall_subset.xlsx','Sheet','1996','Range','A1:E11')
T_selected=10×5 table
    Year    Month    DayofMonth    DayOfWeek    DepTime
    ____    _____    __________    _________    _______

    1996      1          18            4         2117  
    1996      1          12            5         1252  
    1996      1          16            2         1441  
    1996      1           1            1         2258  
    1996      1           4            4         1814  
    1996      1          31            3         1822  
    1996      1          18            4          729  
    1996      1          26            5         1704  
    1996      1          11            4         1858  
    1996      1           7            7         2100  

Convertir variables en variables de fecha y hora, duración o categóricas

Durante el proceso de importación, readtable detecta automáticamente los tipos de datos de las variables. Sin embargo, si los datos contienen fechas, duraciones o etiquetas repetidas no estándar, puede convertir dichas variables en sus tipos de datos correctos. Convertir las variables en sus tipos de datos correctos le permite realizar cómputos y comparaciones eficientes y mejora el uso de la memoria. Por ejemplo, puede representar las variables Year, Month y DayofMonth como una variable datetime, UniqueCarrier como categorical y ArrDelay como duration en minutos.

data = T(:,{'Year','Month','DayofMonth','UniqueCarrier','ArrDelay'});
data.Date = datetime(data.Year,data.Month,data.DayofMonth);
data.UniqueCarrier = categorical(data.UniqueCarrier);
data.ArrDelay = minutes(data.ArrDelay);

Encuentre el día del año con mayor retraso y luego muestre la fecha.

ind = find(data.ArrDelay == max(data.ArrDelay));
data.Date(ind)
ans = datetime
   07-Apr-2008

Leer todas las hojas de cálculo de un archivo de hoja de cálculo

Un almacén de datos es útil para procesar cantidades arbitrariamente grandes de datos distribuidos por varias hojas de cálculo o varios archivos de hoja de cálculo. Puede importar y procesar los datos a través del almacén de datos.

Cree un almacén de datos a partir de la recopilación de hojas de cálculo de airlinesmall_subset.xlsx, seleccione las variables que se importarán y, después, previsualice los datos.

ds = spreadsheetDatastore('airlinesmall_subset.xlsx');
ds.SelectedVariableNames = {'Year','Month','DayofMonth','UniqueCarrier','ArrDelay'};
preview(ds)
ans=8×5 table
    Year    Month    DayofMonth    UniqueCarrier    ArrDelay
    ____    _____    __________    _____________    ________

    1996      1          18           {'HP'}            6   
    1996      1          12           {'HP'}           11   
    1996      1          16           {'HP'}          -13   
    1996      1           1           {'HP'}            1   
    1996      1           4           {'US'}           -9   
    1996      1          31           {'US'}            9   
    1996      1          18           {'US'}           -2   
    1996      1          26           {'NW'}          -10   

Antes de importar los datos, puede especificar qué tipos de datos usar. Para este ejemplo, importe UniqueCarrier como una variable categórica.

 ds.SelectedVariableTypes(4) = {'categorical'};

Importe los datos usando las funciones readall o read. La función readall requiere que todos los datos quepan en la memoria, condición que se cumple en los datos de muestra. Después de la importación, calcule el retraso de llegada máximo de este conjunto de datos.

alldata = readall(ds);
max(alldata.ArrDelay)/60
ans = 15.2333

Para conjuntos de datos grandes, importe partes del archivo usando la función read. Para obtener más información, consulte Leer una recopilación o secuencia de archivos de hoja de cálculo.

Consulte también

|

Temas relacionados