Main Content

Crear tablas y asignarles datos

Las tablas son adecuadas para los datos orientados a columnas, como datos tabulares, a partir de archivos de texto u hojas de cálculo. Las tablas almacenan columnas de datos en variables. Las variables en una tabla pueden contener diferentes tipos de datos, pero todas las variables deben tener el mismo número de filas. Sin embargo, las variables de una tabla no solo pueden almacenar 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 la tabla.

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

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

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

  • Asigne variables a una tabla vacía.

  • Asigne previamente una tabla y rellene sus datos más tarde.

  • Convierta variables a tablas con las funciones array2table, cell2table o struct2table.

  • Lea una tabla de un archivo con la función readtable.

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

La forma que elija dependerá de la naturaleza de los datos y de cómo tenga planificado utilizar las tablas en el código.

Crear tablas a partir de arreglos de entrada

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

En primer lugar, cree seis arreglos de datos orientados a columna. 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 contenedor para los datos. En esta llamada a la función table, los argumentos de entrada utilizan 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 una tabla de 5 por 6 porque tiene seis variables. Como muestra la variable BloodPressure, una variable de tabla puede contener varias columnas. En este ejemplo se muestra por qué las tablas tienen filas y variables, no filas y columnas.

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

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

Por ejemplo, añada una variable BMI a patients. Calcule el índice de masa corporal (BMI) utilizando los valores en patients.Weight y patients.Height. Asigne los valores del BMI a una nueva variable de la 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 comenzar con una tabla vacía y asignarle variables. Por ejemplo, vuelva a crear la tabla de datos de pacientes, pero esta vez asigne las variables mediante notación de puntos.

En primer lugar, 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 la tabla no tienen que coincidir con los nombres del arreglo, como se muestra en las variables de la 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

Asignar previamente tablas y rellenar filas

En ocasiones, conoce los tamaños y los tipos de datos de los datos que desea almacenar en una tabla, pero tiene planeado asignar los datos más tarde. Quizá tenga planeado añadir solo unas cuantas filas cada vez. En ese caso, asignar previamente espacio en la tabla y después asignar valores a las filas vacías puede resultar más eficiente.

Por ejemplo, para asignar previamente espacio para que una tabla contenga lecturas de hora y temperatura en diferentes 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 la tabla. Para darles nombres, especifique el argumento 'VariableNames'. La preasignación rellena las variables de la tabla con valores predeterminados que son adecuados 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 variables respectivas, la asignación convierte el arreglo de celdas a una fila de la tabla. Sin embargo, puede asignar solo una fila cada vez mediante 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         31-Aug-2022 03:29:26    "S1"     
        68         01-Sep-2022 03:29:26    "S2"     
         0                          NaT    <missing>
         0                          NaT    <missing>

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

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

        75         31-Aug-2022 03:29:26     "S1"  
        68         01-Sep-2022 03:29:26     "S2"  
        63         02-Sep-2022 03:29:26     "S3"  
        72         03-Sep-2022 03:29:26     "S4"  

Puede utilizar cualquiera de las sintaxis para aumentar el tamaño de una tabla asignando filas más allá del final de la tabla. En caso necesario, las filas ausentes se rellenan con valores predeterminados.

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

        75         31-Aug-2022 03:29:26    "S1"     
        68         01-Sep-2022 03:29:26    "S2"     
        63         02-Sep-2022 03:29:26    "S3"     
        72         03-Sep-2022 03:29:26    "S4"     
         0                          NaT    <missing>
        62         06-Sep-2022 03:29:26    "S6"     

Convertir variables a 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 que tengan diferentes tipos de datos. De modo que puede convertir arreglos de celdas y estructuras a tablas. También puede convertir un arreglo a una tabla donde las variables de la 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 mediante array2table. Los arreglos no tienen nombres de columna, así que la tabla tendrá nombres de variable predeterminados.

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 proporcionar sus propios nombres de variables de tabla mediante el argumento de par 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 tabla desde un archivo

Es habitual tener una gran cantidad de datos tabulares en un archivo como un archivo CSV (valores separados por comas) o una hoja de cálculo de Excel®. Para leer estos datos en una tabla, utilice la función readtable.

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

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 utilizar readtable. Lee valores numéricos, fechas y horas, y cadenas en variables de tabla que tienen los tipos de datos adecuados. En este caso, 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 en las columnas del archivo de entrada. Para leer el resto de los datos de texto en arreglos de cadenas, especifique el argumento de par nombre-valor "TextType".

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

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

Importar tabla mediante la herramienta de importación

Por último, puede previsualizar e importar de manera interactiva los datos de hojas de cálculo o archivos de texto delimitado mediante 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 u hoja de cálculo.

Por ejemplo, abra el archivo de muestra outages.csv mediante uiimport y use which para obtener la ruta hasta el archivo.

uiimport(which("outages.csv"))

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

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

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

importToolOutages.png

Consulte también

| | | | |

Temas relacionados