Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Crear tablas y asignarles datos

Las tablas son adecuadas para datos orientados a columnas, como datos tabulares de archivos de texto u hojas de cálculo. Las tablas almacenan columnas de datos en variables. Las variables de una tabla pueden contener distintos tipos de datos, pero todas las variables deben tener el mismo número de filas. Sin embargo, las variables de tabla no están limitadas a almacenar solo vectores columna. Por ejemplo, una variable de tabla puede contener una matriz con varias columnas siempre y cuando tenga el mismo número de filas que las otras variables de tabla.

En MATLAB®, puede crear tablas y asignarles datos de varias formas.

  • Cree una tabla a partir de arreglos de entrada con la función table.

  • Añada variables a una tabla existente usando notación de puntos.

  • Asigne variables a una tabla vacía.

  • Preasigne una tabla y rellene sus datos después.

  • Convierta las variables en tablas usando las funciones array2table, cell2table o struct2table.

  • Lea una tabla desde un archivo usando la función readtable.

  • Importe una tabla con la herramienta de importación.

Su elección dependerá de la naturaleza de sus datos y de cómo planea usar las tablas en su código.

Crear tablas a partir de arreglos de entrada

Puede crear una tabla desde arreglos con la función table. Por ejemplo, cree una tabla pequeña con datos de cinco pacientes.

Primero, cree seis arreglos de datos orientados a columnas. Estos arreglos tienen cinco filas porque hay cinco pacientes. (La mayoría de estos arreglos son vectores columna de 5 por 1, mientras que BloodPressure es una matriz de 5 por 2).

LastName = ["Sanchez";"Johnson";"Zhang";"Diaz";"Brown"];
Age = [38;43;38;40;49];
Smoker = [true;false;true;false;true];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];

Ahora cree la tabla patients como un contenedor de los datos. En esta llamada a la función table, los argumentos de entrada usan los nombres de las variables del área de trabajo para los nombres de las variables de patients.

patients = table(LastName,Age,Smoker,Height,Weight,BloodPressure)
patients=5×6 table
    LastName     Age    Smoker    Height    Weight    BloodPressure
    _________    ___    ______    ______    ______    _____________

    "Sanchez"    38     true        71       176       124     93  
    "Johnson"    43     false       69       163       109     77  
    "Zhang"      38     true        64       131       125     83  
    "Diaz"       40     false       67       133       117     75  
    "Brown"      49     true        64       119       122     80  

La tabla es de 5 por 6 porque tiene seis variables. Como se muestra en la variable BloodPressure, una variable de tabla en sí puede tener varias columnas. Este ejemplo muestra por qué las tablas tienen filas y variables, no filas y columnas.

Añadir variables a una tabla usando notación de puntos

Cuando haya creado una tabla, puede añadir una nueva variable en cualquier momento usando la notación de puntos. La notación de puntos se refiere a las variables de tabla por nombre, T.varname, donde T es la tabla y varname el nombre de la variable. Esta notación es similar a la que usa para acceder y asignar datos a los campos de una estructura.

Por ejemplo, agregue la variable BMI a patients. Calcule el índice de masa corporal o BMI con los valores de patients.Weight y patients.Height. Asigne los valores de BMI a una nueva variable de tabla.

patients.BMI = (patients.Weight*0.453592)./(patients.Height*0.0254).^2
patients=5×7 table
    LastName     Age    Smoker    Height    Weight    BloodPressure     BMI  
    _________    ___    ______    ______    ______    _____________    ______

    "Sanchez"    38     true        71       176       124     93      24.547
    "Johnson"    43     false       69       163       109     77      24.071
    "Zhang"      38     true        64       131       125     83      22.486
    "Diaz"       40     false       67       133       117     75      20.831
    "Brown"      49     true        64       119       122     80      20.426

Asignar variables a una tabla vacía

Otra forma de crear una tabla es empezar con una tabla vacía y asignarle variables. Por ejemplo, vuelva a crear la tabla de datos de pacientes, pero esta vez asigne variables usando notación de puntos.

Primero, cree una tabla vacía, patients2, llamando a table sin argumentos.

patients2 = table
patients2 =

  0x0 empty table

A continuación, cree una copia de los datos de los pacientes asignando variables. Los nombres de las variables de tabla no tienen que coincidir con los del arreglo, tal y como se muestra en las variables de tabla Name y BP.

patients2.Name = LastName;
patients2.Age = Age;
patients2.Smoker = Smoker;
patients2.Height = Height;
patients2.Weight = Weight;
patients2.BP = BloodPressure
patients2=5×6 table
      Name       Age    Smoker    Height    Weight        BP    
    _________    ___    ______    ______    ______    __________

    "Sanchez"    38     true        71       176      124     93
    "Johnson"    43     false       69       163      109     77
    "Zhang"      38     true        64       131      125     83
    "Diaz"       40     false       67       133      117     75
    "Brown"      49     true        64       119      122     80

Preasignar una tabla y rellenar filas

Habrá ocasiones en las que conozca los tamaños y los tipos de datos que desea almacenar en la tabla, pero tiene planeado asignar los datos después. Quizá tenga planeado añadir solo unas pocas filas. En ese caso, quizá sea más eficiente preasignar espacio en la tabla y, luego, asignar valores a las filas vacías.

Por ejemplo, para preasignar espacio en una tabla que vaya a contener lecturas de tiempo y temperatura en distintas estaciones, utilice la función table. En lugar de proporcionar arreglos de entrada, especifique los tamaños y los tipos de datos de las variables de tabla. Para nombrarlos, especifique el argumento 'VariableNames'. La preasignación rellena las variables de tabla con valores predeterminados apropiados para los tipos de datos.

sz = [4 3];
varTypes = ["double","datetime","string"];
varNames = ["Temperature","Time","Station"];
temps = table('Size',sz,'VariableTypes',varTypes,'VariableNames',varNames)
temps=4×3 table
    Temperature    Time     Station 
    ___________    ____    _________

         0         NaT     <missing>
         0         NaT     <missing>
         0         NaT     <missing>
         0         NaT     <missing>

Una forma de asignar o añadir una fila a una tabla es asignar un arreglo de celdas a una fila. Si el arreglo de celdas es un vector fila y sus elementos coinciden con los tipos de datos de sus respectivas variables, la asignación convierte el arreglo de celdas en una fila de la tabla. No obstante, puede asignar solo una fila cada vez usando arreglos de celdas. Asigne valores a las dos primeras filas.

temps(1,:) = {75,datetime('now'),"S1"};
temps(2,:) = {68,datetime('now')+1,"S2"}
temps=4×3 table
    Temperature            Time             Station 
    ___________    ____________________    _________

        75         19-Aug-2023 14:31:33    "S1"     
        68         20-Aug-2023 14:31:33    "S2"     
         0                          NaT    <missing>
         0                          NaT    <missing>

Como alternativa, puede asignar filas de una tabla más pequeña a una más grande. Con este método, puede asignar una o más filas a la vez.

temps(3:4,:) = table([63;72],[datetime('now')+2;datetime('now')+3],["S3";"S4"])
temps=4×3 table
    Temperature            Time            Station
    ___________    ____________________    _______

        75         19-Aug-2023 14:31:33     "S1"  
        68         20-Aug-2023 14:31:33     "S2"  
        63         21-Aug-2023 14:31:33     "S3"  
        72         22-Aug-2023 14:31:33     "S4"  

Puede usar cualquier sintaxis para aumentar el tamaño de la tabla asignando filas después del final de la tabla. Si es necesario, las filas que faltan se rellenan con valores predeterminados.

temps(6,:) = {62,datetime('now')+6,"S6"}
temps=6×3 table
    Temperature            Time             Station 
    ___________    ____________________    _________

        75         19-Aug-2023 14:31:33    "S1"     
        68         20-Aug-2023 14:31:33    "S2"     
        63         21-Aug-2023 14:31:33    "S3"     
        72         22-Aug-2023 14:31:33    "S4"     
         0                          NaT    <missing>
        62         25-Aug-2023 14:31:33    "S6"     

Convertir variables en tablas

Puede convertir variables que tengan otros tipos de datos a tablas. Los arreglos de celdas y las estructuras son otros tipos de contenedores que pueden almacenar arreglos con distintos tipos de datos. Esto le permite convertir arreglos de celdas y estructuras a tablas. También puede convertir un arreglo a una tabla en la que las variables de tabla contengan columnas de valores del arreglo. Para convertir estos tipos de variables, utilice las funciones array2table, cell2table o struct2table.

Por ejemplo, convierta un arreglo a una tabla con array2table. Los arreglos no tienen nombres de columna, por lo que la tabla tiene nombres predeterminados para las variables.

A = randi(3,3)
A = 3×3

     3     3     1
     3     2     2
     1     1     3

a2t = array2table(A)
a2t=3×3 table
    A1    A2    A3
    __    __    __

    3     3     1 
    3     2     2 
    1     1     3 

Puede introducir sus propios nombres de las variables de tabla con el argumento nombre-valor "VariableNames".

a2t = array2table(A,"VariableNames",["First","Second","Third"])
a2t=3×3 table
    First    Second    Third
    _____    ______    _____

      3        3         1  
      3        2         2  
      1        1         3  

Leer una tabla desde un archivo

Es habitual tener una gran cantidad de datos tabulares en archivos como CSV (valor separado por comas) o en hojas de cálculo de Excel®. Para leer esos datos en una tabla, use la función readtable.

Por ejemplo, el archivo CSV outages.csv es un archivo de muestra distribuido con MATLAB. El archivo contiene datos de un conjunto de cortes de suministro eléctrico. La primera línea de outages.csv tiene nombres de columnas. El resto del archivo tiene valores de datos separados por comas para cada corte. Las primeras líneas se muestran aquí.

Region,OutageTime,Loss,Customers,RestorationTime,Cause
SouthWest,2002-02-01 12:18,458.9772218,1820159.482,2002-02-07 16:50,winter storm
SouthEast,2003-01-23 00:49,530.1399497,212035.3001,,winter storm
SouthEast,2003-02-07 21:15,289.4035493,142938.6282,2003-02-17 08:14,winter storm
West,2004-04-06 05:44,434.8053524,340371.0338,2004-04-06 06:10,equipment fault
MidWest,2002-03-16 06:18,186.4367788,212754.055,2002-03-18 23:23,severe storm
...

Para leer outages.csv y almacenar los datos en una tabla, puede usar readtable. Lee valores numéricos, fechas y horas y cadenas en variables de tabla que tengan los tipos de datos adecuados. Aquí, Loss y Customers son arreglos numéricos. Las variables OutageTime y RestorationTime son arreglos de datetime porque readtable reconoce los formatos de fecha y hora del texto de esas columnas del archivo de entrada. Para leer el resto de los datos del texto en arreglos de cadenas, especifique el argumento nombre-valor "TextType".

outages = readtable("outages.csv","TextType","string")
outages=1468×6 table
      Region            OutageTime          Loss     Customers       RestorationTime             Cause      
    ___________    ____________________    ______    __________    ____________________    _________________

    "SouthWest"    01-Feb-2002 12:18:00    458.98    1.8202e+06    07-Feb-2002 16:50:00    "winter storm"   
    "SouthEast"    23-Jan-2003 00:49:00    530.14    2.1204e+05                     NaT    "winter storm"   
    "SouthEast"    07-Feb-2003 21:15:00     289.4    1.4294e+05    17-Feb-2003 08:14:00    "winter storm"   
    "West"         06-Apr-2004 05:44:00    434.81    3.4037e+05    06-Apr-2004 06:10:00    "equipment fault"
    "MidWest"      16-Mar-2002 06:18:00    186.44    2.1275e+05    18-Mar-2002 23:23:00    "severe storm"   
    "West"         18-Jun-2003 02:49:00         0             0    18-Jun-2003 10:54:00    "attack"         
    "West"         20-Jun-2004 14:39:00    231.29           NaN    20-Jun-2004 19:16:00    "equipment fault"
    "West"         06-Jun-2002 19:28:00    311.86           NaN    07-Jun-2002 00:51:00    "equipment fault"
    "NorthEast"    16-Jul-2003 16:23:00    239.93         49434    17-Jul-2003 01:12:00    "fire"           
    "MidWest"      27-Sep-2004 11:09:00    286.72         66104    27-Sep-2004 16:37:00    "equipment fault"
    "SouthEast"    05-Sep-2004 17:48:00    73.387         36073    05-Sep-2004 20:46:00    "equipment fault"
    "West"         21-May-2004 21:45:00    159.99           NaN    22-May-2004 04:23:00    "equipment fault"
    "SouthEast"    01-Sep-2002 18:22:00    95.917         36759    01-Sep-2002 19:12:00    "severe storm"   
    "SouthEast"    27-Sep-2003 07:32:00       NaN    3.5517e+05    04-Oct-2003 07:02:00    "severe storm"   
    "West"         12-Nov-2003 06:12:00    254.09    9.2429e+05    17-Nov-2003 02:04:00    "winter storm"   
    "NorthEast"    18-Sep-2004 05:54:00         0             0                     NaT    "equipment fault"
      ⋮

Importar una tabla con la herramienta de importación

Finalmente, puede obtener los datos de la importación y una vista previa interactiva desde hojas de cálculo o archivos de texto delimitados con la herramienta de importación. Existen dos formas de abrir la herramienta de importación.

  • Barra de herramientas de MATLAB: En la pestaña Home, en la sección Variable, haga clic en Import Data.

  • Línea de comandos de MATLAB: Introduzca uiimport(filename), donde filename es el nombre de un archivo de texto o una hoja de cálculo.

Por ejemplo, abra el archivo de muestra outages.csv con uiimport y which para obtener la ruta al archivo.

uiimport(which("outages.csv"))

La herramienta de importación muestra una vista previa de las seis columnas de outages.csv. Para importar los datos como una tabla, siga estos pasos.

  1. En la sección Imported Data, seleccione Table como tipo de salida.

  2. Haga clic en Import Selection (cerca de la esquina superior derecha). La nueva tabla, llamada outages, aparece en su área de trabajo.

importToolOutages.png

Consulte también

Funciones

Apps

Temas relacionados