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
ostruct2table
.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 30-Jan-2023 14:40:17 "S1"
68 31-Jan-2023 14:40:17 "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 30-Jan-2023 14:40:17 "S1"
68 31-Jan-2023 14:40:17 "S2"
63 01-Feb-2023 14:40:17 "S3"
72 02-Feb-2023 14:40:17 "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 30-Jan-2023 14:40:17 "S1"
68 31-Jan-2023 14:40:17 "S2"
63 01-Feb-2023 14:40:17 "S3"
72 02-Feb-2023 14:40:17 "S4"
0 NaT <missing>
62 05-Feb-2023 14:40:17 "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
)
, dondefilename
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.
En la sección Imported Data, seleccione Table como el tipo de salida.
Haga clic en Import Selection (cerca de la esquina superior derecha). La nueva tabla, denominada
outages
, aparecerá en su área de trabajo.
Consulte también
readtable
| table
| array2table
| cell2table
| struct2table
| Herramienta de importación