Contenido principal

Acceder a datos en tablas

Una tabla es un contenedor que almacena datos orientados a columnas en variables. Para acceder a los datos de una tabla, puede indexar en la tabla especificando filas y variables, del mismo modo que puede indexar en una matriz especificando filas y columnas. Las variables de tabla tienen nombres, al igual que los campos de una estructura. Las filas de una tabla también pueden tener nombres, pero no es obligatorio. Para indexar en una tabla, especifique filas y variables usando posiciones, nombres o tipos de datos. El resultado puede ser un arreglo o una tabla.

Este tema describe las diferentes sintaxis para indexar tablas y cuándo usar cada tipo. Ejemplos adicionales muestran las diferentes formas de aplicar estos tipos de indexación de tablas. La tabla al final del tema resume las sintaxis para indexar, cómo especificar filas y variables y las salidas resultantes.

Sintaxis para indexar tablas

En función del tipo de indexación que utilice, el resultado es un arreglo extraído de la tabla o una tabla nueva. Indexación con:

  • Notación de puntos, como en T.varname o T.(expression), que extrae un arreglo de una variable de tabla.

  • Llaves, como en T{rows,vars}, que extraen un arreglo de las filas y las variables especificadas. Las variables deben tener tipos de datos compatibles de modo que puedan concatenarse en un arreglo.

  • Paréntesis, como en T(rows,vars), que devuelven una tabla que contiene solo las filas y las variables especificadas.

Este diagrama muestra los tres tipos de indexación de tablas.

To extract an array from one table variable, use dot notation. To extract an array from multiple table variables, use curly braces. To return a table that has only the specified rows and variables, use parentheses.

Sintaxis recomendadas para indexar

La manera recomendada de acceder al contenido de una tabla depende del resultado que desee y el número de variables que especifique. En estos ejemplos de sintaxis, T es una tabla que contiene variables llamadas Var1, Var2 y Var3 (si no especifica nombres de variables cuando llame a la función table, estos nombres serán los nombres predeterminados).

T = table([1;2;3;4;5],[5;10;15;20;25],[150;300;450;600;750])
  • Para acceder a una variable de tabla, utilice la notación de puntos. Especifique un nombre de variable o una expresión que coincida con el nombre o la posición de una variable.

    Usar nombres literales de variables es más rápido que usar expresiones. Por ejemplo, tanto T.Var1 como T.(1) acceden a la primera variable de T, pero usar la expresión es más lento.

    X = T.Var1
    Y = T.Var1(1:3)
    Z = T.(1)
    T.Var1 = T.Var1 .* 10
    

    También puede especificar una variable usando llaves. Sin embargo, acceder a una variable usando notación de puntos es más rápido que acceder a una variable usando llaves.

  • Para acceder a múltiples variables de tabla, utilice llaves.

    X = T{:,["Var1","Var2"]}
    Y = T{1:3,["Var1","Var2"]}
    T{:,["Var1","Var2"]} = T{:,["Var1","Var2"]} .* 10
    
  • Para devolver una tabla que tenga únicamente filas y variables especificadas, utilice paréntesis.

    T2 = T(:,["Var1","Var2"])
    T2 = T(1:3,["Var1","Var2"])
    
    A = rand(5,1)
    B = rand(5,1)
    T(:,["Var1","Var2"]) = table(A,B)
    

Indexar especificando filas y variables

Puede indexar en tablas especificando índices numéricos, nombres de variables y filas, o tipos de datos de variables.

Cree una tabla. Cargue arreglos de datos del archivo de muestra patients.mat. Luego, cree una tabla a partir de estos arreglos con la función table. Los nombres de los arreglos de entrada se convierten en los nombres de las variables de la tabla. Los nombres de fila son opcionales. Para especificar nombres de fila, utilice el argumento nombre-valor RowNames.

load patients.mat Age Height Weight Smoker LastName
T = table(Age,Height,Weight,Smoker,RowNames=LastName)
T=100×4 table
                Age    Height    Weight    Smoker
                ___    ______    ______    ______

    Smith       38       71       176      true  
    Johnson     43       69       163      false 
    Williams    38       64       131      false 
    Jones       40       67       133      false 
    Brown       49       64       119      false 
    Davis       46       68       142      false 
    Miller      33       64       142      true  
    Wilson      40       68       180      false 
    Moore       28       68       183      false 
    Taylor      31       66       132      false 
    Anderson    45       68       128      false 
    Thomas      42       66       137      false 
    Jackson     25       71       174      false 
    White       39       72       202      true  
    Harris      36       65       129      false 
    Martin      48       71       181      true  
      ⋮

Indexar por posición

Puede indexar en tablas especificando posiciones como índices numéricos. También puede utilizar dos puntos y la palabra clave end.

Por ejemplo, indexe en las primeras tres filas de T. Esta sintaxis es una manera compacta de devolver una tabla con el número especificado de filas.

firstRows = T(1:3,:)
firstRows=3×4 table
                Age    Height    Weight    Smoker
                ___    ______    ______    ______

    Smith       38       71       176      true  
    Johnson     43       69       163      false 
    Williams    38       64       131      false 

Devuelva una tabla con las primeras dos variables y las últimas tres filas de T.

lastRows = T(end-2:end,1:2)
lastRows=3×2 table
               Age    Height
               ___    ______

    Griffin    49       70  
    Diaz       45       68  
    Hayes      48       66  

Si las variables tienen tipos de datos compatibles, puede usar llaves para devolver los datos extraídos como un arreglo.

lastRowsAsArray = T{end-2:end,1:2}
lastRowsAsArray = 3×2

    49    70
    45    68
    48    66

Indexar por nombres de variable

Puede indexar en tablas especificando nombres de variable con un arreglo de cadenas. No es necesario que los nombres de las variables de la tabla sean identificadores válidos de MATLAB®. También pueden incluir espacios y caracteres no ASCII, y empezar por cualquier carácter.

Por ejemplo, devuelva una tabla que contenga solo las tres primeras filas de T y las variables Height y Weight.

variablesByName = T(1:3,["Height","Weight"])
variablesByName=3×2 table
                Height    Weight
                ______    ______

    Smith         71       176  
    Johnson       69       163  
    Williams      64       131  

Utilice llaves para devolver los datos como un arreglo.

arraysFromVariables = T{1:3,["Height","Weight"]}
arraysFromVariables = 3×2

    71   176
    69   163
    64   131

También puede usar la notación de puntos para indexar en una variable. De hecho, la notación de puntos es más eficiente cuando se accede solo a una variable.

heightAsArray = T.Height
heightAsArray = 100×1

    71
    69
    64
    67
    64
    68
    64
    68
    68
    66
    68
    66
    71
    72
    65
      ⋮

Utilice la notación de puntos para devolver las primeras tres filas de la variable Height como un arreglo.

firstHeights = T.Height(1:3)
firstHeights = 3×1

    71
    69
    64

Indexar por nombres de fila

Si una tabla tiene nombres de fila, puede indexar en la tabla por nombre de fila, no solo por número de fila. Por ejemplo, devuelva filas de T para tres pacientes específicos.

rowsByName = T(["Griffin","Diaz","Hayes"],:)
rowsByName=3×4 table
               Age    Height    Weight    Smoker
               ___    ______    ______    ______

    Griffin    49       70       186      false 
    Diaz       45       68       172      true  
    Hayes      48       66       177      false 

También puede utilizar llaves para devolver los datos como un arreglo.

arraysFromRows = T{["Griffin","Diaz","Hayes"],:}
arraysFromRows = 3×4

    49    70   186     0
    45    68   172     1
    48    66   177     0

Indexar en un elemento

Para indexar en un elemento de una tabla, especifique una fila y una variable. Utilice llaves para devolver el elemento como un arreglo, un valor escalar en este caso.

oneElement = T{"Diaz","Height"}
oneElement = 
68

Para devolver ese elemento como una tabla con una fila y una variable, utilice paréntesis.

oneElementTable = T("Diaz","Height")
oneElementTable=table
            Height
            ______

    Diaz      68  

Indexar por tipo de datos de variables

Para indexar en una tabla especificando variables que tienen el mismo tipo de datos, cree un subíndice de tipo de datos usando la función vartype.

Por ejemplo, cree un subíndice de tipo de datos que coincida con las variables de tabla numéricas.

numSubscript = vartype("numeric")
numSubscript = 
	table vartype subscript:

		Select table variables matching the type 'numeric'

	See Access Data in a Table.

Devuelva una tabla que contenga solo las variables numéricas de T. La variable Smoker no está incluida porque es una variable lógica.

onlyNumVariables = T(:,numSubscript)
onlyNumVariables=100×3 table
                Age    Height    Weight
                ___    ______    ______

    Smith       38       71       176  
    Johnson     43       69       163  
    Williams    38       64       131  
    Jones       40       67       133  
    Brown       49       64       119  
    Davis       46       68       142  
    Miller      33       64       142  
    Wilson      40       68       180  
    Moore       28       68       183  
    Taylor      31       66       132  
    Anderson    45       68       128  
    Thomas      42       66       137  
    Jackson     25       71       174  
    White       39       72       202  
    Harris      36       65       129  
    Martin      48       71       181  
      ⋮

Asignar valores a una tabla

Puede usar cualquier sintaxis de indexación para asignar valores a una tabla. Puede asignar valores a variables, filas o elementos individuales.

Asignar valores a variables

Importe los datos de cortes del suministro eléctrico de una hoja de cálculo a una tabla utilizando la función readtable.

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"
      ⋮

Para asignar valores a una variable, utilice la notación de puntos. Por ejemplo, escale la variable Loss con un factor de 100.

outages.Loss = outages.Loss .* 100
outages=1468×6 table
      Region          OutageTime        Loss     Customers     RestorationTime           Cause      
    ___________    ________________    ______    __________    ________________    _________________

    "SouthWest"    2002-02-01 12:18     45898    1.8202e+06    2002-02-07 16:50    "winter storm"   
    "SouthEast"    2003-01-23 00:49     53014    2.1204e+05                 NaT    "winter storm"   
    "SouthEast"    2003-02-07 21:15     28940    1.4294e+05    2003-02-17 08:14    "winter storm"   
    "West"         2004-04-06 05:44     43481    3.4037e+05    2004-04-06 06:10    "equipment fault"
    "MidWest"      2002-03-16 06:18     18644    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     23129           NaN    2004-06-20 19:16    "equipment fault"
    "West"         2002-06-06 19:28     31186           NaN    2002-06-07 00:51    "equipment fault"
    "NorthEast"    2003-07-16 16:23     23993         49434    2003-07-17 01:12    "fire"           
    "MidWest"      2004-09-27 11:09     28672         66104    2004-09-27 16:37    "equipment fault"
    "SouthEast"    2004-09-05 17:48    7338.7         36073    2004-09-05 20:46    "equipment fault"
    "West"         2004-05-21 21:45     15999           NaN    2004-05-22 04:23    "equipment fault"
    "SouthEast"    2002-09-01 18:22    9591.7         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     25409    9.2429e+05    2003-11-17 02:04    "winter storm"   
    "NorthEast"    2004-09-18 05:54         0             0                 NaT    "equipment fault"
      ⋮

También puede asignar datos a múltiples variables usando llaves. Las variables deben tener tipos de datos compatibles. Por ejemplo, escale Loss y Customers con un factor de 1/10.000.

outages{:,["Loss","Customers"]} = outages{:,["Loss","Customers"]} ./ 10000
outages=1468×6 table
      Region          OutageTime        Loss      Customers    RestorationTime           Cause      
    ___________    ________________    _______    _________    ________________    _________________

    "SouthWest"    2002-02-01 12:18     4.5898     182.02      2002-02-07 16:50    "winter storm"   
    "SouthEast"    2003-01-23 00:49     5.3014     21.204                   NaT    "winter storm"   
    "SouthEast"    2003-02-07 21:15      2.894     14.294      2003-02-17 08:14    "winter storm"   
    "West"         2004-04-06 05:44     4.3481     34.037      2004-04-06 06:10    "equipment fault"
    "MidWest"      2002-03-16 06:18     1.8644     21.275      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     2.3129        NaN      2004-06-20 19:16    "equipment fault"
    "West"         2002-06-06 19:28     3.1186        NaN      2002-06-07 00:51    "equipment fault"
    "NorthEast"    2003-07-16 16:23     2.3993     4.9434      2003-07-17 01:12    "fire"           
    "MidWest"      2004-09-27 11:09     2.8672     6.6104      2004-09-27 16:37    "equipment fault"
    "SouthEast"    2004-09-05 17:48    0.73387     3.6073      2004-09-05 20:46    "equipment fault"
    "West"         2004-05-21 21:45     1.5999        NaN      2004-05-22 04:23    "equipment fault"
    "SouthEast"    2002-09-01 18:22    0.95917     3.6759      2002-09-01 19:12    "severe storm"   
    "SouthEast"    2003-09-27 07:32        NaN     35.517      2003-10-04 07:02    "severe storm"   
    "West"         2003-11-12 06:12     2.5409     92.429      2003-11-17 02:04    "winter storm"   
    "NorthEast"    2004-09-18 05:54          0          0                   NaT    "equipment fault"
      ⋮

Asignar valores a filas

Para asignar una fila a una tabla, puede usar una tabla de una fila o un arreglo de celdas. En este caso, usar un arreglo de celdas puede ser más práctico que crear y asignar una tabla de una fila.

Por ejemplo, asigne datos a una nueva fila al final de outages. Muestre el final de la tabla.

outages(end+1,:) = {"East",datetime("now"),17.3,325,datetime("tomorrow"),"unknown"};
outages(end-2:end,:)
ans=3×6 table
      Region          OutageTime         Loss      Customers    RestorationTime           Cause      
    ___________    ________________    ________    _________    ________________    _________________

    "SouthEast"    2013-12-20 19:52    0.023096     0.10382     2013-12-20 23:29    "thunder storm"  
    "SouthEast"    2011-09-14 11:55     0.45042      1.1835     2011-09-14 13:28    "equipment fault"
    "East"         2025-07-13 20:44        17.3         325     2025-07-14 00:00    "unknown"        

Para asignar datos a varias filas, asigne valores de otra tabla que tenga variables con los mismos nombres y tipos de datos. Por ejemplo, cree una tabla nueva de dos filas.

newOutages = table(["West";"North"], ...
                   datetime(2024,1,1:2)', ...
                   [3;4], ...
                   [300;400], ...
                   datetime(2024,1,3:4)',["unknown";"unknown"], ...
                   VariableNames=outages.Properties.VariableNames)
newOutages=2×6 table
    Region     OutageTime     Loss    Customers    RestorationTime      Cause  
    _______    ___________    ____    _________    _______________    _________

    "West"     01-Jan-2024     3         300         03-Jan-2024      "unknown"
    "North"    02-Jan-2024     4         400         04-Jan-2024      "unknown"

Asigne la tabla de dos filas a las dos primeras filas de outages. Después, muestre las primeras cuatro filas de outages.

outages(1:2,:) = newOutages;
outages(1:4,:)
ans=4×6 table
      Region          OutageTime        Loss     Customers    RestorationTime           Cause      
    ___________    ________________    ______    _________    ________________    _________________

    "West"         2024-01-01 00:00         3        300      2024-01-03 00:00    "unknown"        
    "North"        2024-01-02 00:00         4        400      2024-01-04 00:00    "unknown"        
    "SouthEast"    2003-02-07 21:15     2.894     14.294      2003-02-17 08:14    "winter storm"   
    "West"         2004-04-06 05:44    4.3481     34.037      2004-04-06 06:10    "equipment fault"

Asignar valores a elementos

Para asignar valores a elementos de una tabla, utilice llaves. Por ejemplo, asigne causas a los dos primeros cortes.

outages{1,"Cause"} = "severe storm";
outages{2,"Cause"} = "attack";
outages(1:4,:)
ans=4×6 table
      Region          OutageTime        Loss     Customers    RestorationTime           Cause      
    ___________    ________________    ______    _________    ________________    _________________

    "West"         2024-01-01 00:00         3        300      2024-01-03 00:00    "severe storm"   
    "North"        2024-01-02 00:00         4        400      2024-01-04 00:00    "attack"         
    "SouthEast"    2003-02-07 21:15     2.894     14.294      2003-02-17 08:14    "winter storm"   
    "West"         2004-04-06 05:44    4.3481     34.037      2004-04-06 06:10    "equipment fault"

Buscar filas de tablas cuyos valores cumplen condiciones

Para encontrar las filas de una tabla donde los valores cumplen condiciones, utilice la indexación lógica. Especifique las variables de tabla que contengan valores de interés y cree un arreglo de índices de fila donde los valores de esas variables cumplan las condiciones especificadas. Indexe en la tabla con los índices de fila.

En primer lugar, importe los datos de cortes del suministro eléctrico de una hoja de cálculo a una tabla.

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"
      ⋮

Después, cree índices de fila que coincidan con las filas en las que una variable cumple una condición. Por ejemplo, cree índices para filas en las que la región es West.

rows = matches(outages.Region,"West")
rows = 1468×1 logical array

   0
   0
   0
   1
   0
   1
   1
   1
   0
   0
   0
   1
   0
   0
   1
      ⋮

Puede indexar en una tabla con índices lógicos. Muestre las filas de la tabla para los cortes que se producen en la región West.

outages(rows,:)
ans=354×6 table
    Region       OutageTime        Loss     Customers     RestorationTime           Cause      
    ______    ________________    ______    __________    ________________    _________________

    "West"    2004-04-06 05:44    434.81    3.4037e+05    2004-04-06 06:10    "equipment fault"
    "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"
    "West"    2004-05-21 21:45    159.99           NaN    2004-05-22 04:23    "equipment fault"
    "West"    2003-11-12 06:12    254.09    9.2429e+05    2003-11-17 02:04    "winter storm"   
    "West"    2004-12-21 18:50    112.05     7.985e+05    2004-12-29 03:46    "winter storm"   
    "West"    2002-12-16 13:43    70.752    4.8193e+05    2002-12-19 09:38    "winter storm"   
    "West"    2005-06-29 08:37    601.13         32005    2005-06-29 08:57    "equipment fault"
    "West"    2003-04-14 07:11    276.41        1.5647    2003-04-14 08:52    "equipment fault"
    "West"    2003-10-21 17:25    235.12         51496    2003-10-21 19:43    "equipment fault"
    "West"    2005-10-21 08:33       NaN         52639    2005-11-22 22:10    "fire"           
    "West"    2003-08-28 23:46    172.01    1.6964e+05    2003-09-03 02:10    "wind"           
    "West"    2005-03-01 14:39    115.47         82611    2005-03-03 05:58    "equipment fault"
    "West"    2005-09-26 06:32    258.18    1.3996e+05    2005-09-26 06:33    "earthquake"     
    "West"    2003-12-22 03:40    232.26    3.9462e+05    2003-12-24 16:32    "winter storm"   
      ⋮

Puede hacer coincidir varias condiciones con una expresión lógica. Por ejemplo, busque las filas en las que los cortes afectaron a más de un millón de clientes de las regiones West o MidWest.

rows = (outages.Customers > 1e6 & (matches(outages.Region,"West") | matches(outages.Region,"MidWest")));
outages(rows,:)
ans=10×6 table
     Region         OutageTime        Loss     Customers     RestorationTime           Cause      
    _________    ________________    ______    __________    ________________    _________________

    "MidWest"    2002-12-10 10:45     14493    3.0879e+06    2002-12-11 18:06    "unknown"        
    "West"       2007-10-20 20:56    3537.5    1.3637e+06    2007-10-20 22:08    "equipment fault"
    "West"       2006-12-28 14:04    804.05    1.5486e+06    2007-01-04 14:26    "severe storm"   
    "MidWest"    2006-07-16 00:05    1817.9     3.295e+06    2006-07-27 14:42    "severe storm"   
    "West"       2006-01-01 11:54    734.11      4.26e+06    2006-01-11 01:21    "winter storm"   
    "MidWest"    2008-09-19 23:31    4801.1    1.2151e+06    2008-10-03 14:04    "severe storm"   
    "MidWest"    2008-09-07 23:35       NaN     3.972e+06    2008-09-19 17:19    "severe storm"   
    "West"       2011-07-24 02:54    483.37    1.1212e+06    2011-07-24 12:18    "wind"           
    "West"       2010-01-24 18:47    348.91    1.8865e+06    2010-01-30 01:43    "severe storm"   
    "West"       2010-05-17 09:10    8496.6    2.0768e+06    2010-05-18 22:43    "equipment fault"

Resumen de las sintaxis para indexar tablas

Esta tabla enumera cada sintaxis para indexar tablas con cada tipo de índice y las salidas resultantes. Puede especificar filas y variables por posición, nombre o tipo de datos.

  • La indexación lineal no es compatible. Cuando indexe con llaves o paréntesis, debe especificar tanto filas como variables.

  • Los nombres de variables y filas pueden incluir todos los caracteres, incluidos espacios y caracteres no ASCII. También pueden empezar por cualquier carácter, no solo por letras. Los nombres de variables y filas no tienen que ser identificadores de MATLAB válidos (según la función isvarname).

  • Cuando especifique filas o variables por nombre, puede usar un objeto pattern para especificar los nombres. Por ejemplo, "Var" + digitsPattern coincide con todos los nombres que empiecen por Var y terminen con dígitos. (desde R2022a)

Salida

Sintaxis

Filas

Variables

Ejemplos

Arreglo con datos extraídos de una variable

T.var

T.(expression)

Sin especificar

Especificaciones:

  • El nombre de una variable (sin comillas)

  • Una expresión entre paréntesis que devuelve el nombre o el número de una variable

  • T.Date

    Arreglo extraído de la variable de tabla llamada Date

  • T.("2019-06-30")

    Arreglo extraído de la variable de tabla llamada 2019-06-30

  • T.(1)

    Arreglo extraído de la primera variable de tabla

Arreglo con elementos especificados de datos extraídos de una variable

T.var(i,j,...)

T.(expression)(i,j,...)

Sin especificar

Los índices i,j,... no especifican filas de la tabla, sino elementos del arreglo extraído.

Especificaciones:

  • El nombre de una variable (sin comillas)

  • Una expresión entre paréntesis que devuelve el nombre o el número de una variable

Especifique elementos de arreglos usando índices numéricos o lógicos.

Si el arreglo extraído es una matriz o un arreglo multidimensional, puede especificar varios índices numéricos.

  • T.Date(1:5)

    Primeros cinco elementos de un arreglo extraído de la variable de tabla llamada Date

  • T.("2019-06-30")(1:5)

    Primeros cinco elementos de un arreglo extraído de la variable de tabla llamada 2019-06-30

  • T.(1)(1:5)

    Primeros cinco elementos de un arreglo extraído de la primera variable de tabla

  • T.Var1(1:5,1:3)

    Primeras cinco filas y primeras tres columnas de una matriz o un arreglo multidimensional extraído de la variable de tabla llamada Var1

Arreglo con datos concatenados de filas y variables especificadas

T{rows,vars}

Especificaciones:

  • Número de filas (entre 1 y m)

  • Arreglo lógico que tiene m elementos

  • Nombres, si T tiene nombres de filas

  • Horas, si T es un horario

  • Dos puntos (:), para todas las filas

  • Palabra clave end, para la última fila

Especificaciones:

  • Número de variables (entre 1 y n)

  • Arreglo lógico que tiene n elementos

  • Nombres

  • Dos puntos (:), para todas las variables

  • Palabra clave end, para la última variable

  • T{1:5,[1 4 5]}

    Arreglo concatenado desde las primeras cinco filas y la primera, cuarta y quinta variable de T

  • T{1:5,[true false false true true]}

    Arreglo concatenado desde las primeras cinco filas y la primera, cuarta y quinta variable de T

  • T{:,["A","B"]}

    Arreglo concatenado desde todas las filas y variables con nombres A y B

  • T{:,"A" + wildcardPattern}

    Arreglo concatenado a partir de todas las filas y las variables cuyo nombre empieza por A

Arreglo con datos concatenados de filas y variables especificadas que tienen un tipo de datos determinado

S = vartype(type);

T{rows,S}

Especificaciones:

  • Número de filas (entre 1 y m)

  • Arreglo lógico que tiene m elementos

  • Nombres, si T tiene nombres de filas

  • Horas, si T es un horario

  • Dos puntos (:), para todas las filas

  • Palabra clave end, para la última fila

Especificado como subíndice de tipo de datos, como vartype("numeric"), vartype("categorical") o vartype("datetime")

  • S = vartype("numeric");

    T{1:5,S}

    Arreglo concatenado a partir de las primeras cinco filas y las variables numéricas de T

Arreglo con datos concatenados de todas las filas y variables

T.Variables

Sin especificar

Sin especificar

  • T.Variables

    Idéntica al arreglo que ha devuelto T{:,:}

Tabla con filas y variables especificadas

T(rows,vars)

Especificaciones:

  • Número de filas (entre 1 y m)

  • Arreglo lógico que tiene m elementos

  • Nombres, si T tiene nombres de filas

  • Horas, si T es un horario

  • Dos puntos (:), para todas las filas

  • Palabra clave end, para la última fila

Especificaciones:

  • Número de variables (entre 1 y n)

  • Arreglo lógico que tiene n elementos

  • Nombres

  • Dos puntos (:), para todas las variables

  • Palabra clave end, para la última variable

  • T(1:5,[1 4 5])

    Tabla que tiene las primeras cinco filas y la primera, cuarta y quinta variables de T

  • T(1:5,[true false false true true])

    Tabla que tiene las primeras cinco filas y la primera, cuarta y quinta variables de T

  • T(:,["A","B"])

    Tabla que tiene todas las filas y variables con nombres A y B

  • T(:,"A" + wildcardPattern)

    Tabla que tiene todas las filas y las variables cuyos nombres empiezan por A

Tabla con filas y variables especificadas que tienen un tipo de datos determinado

S = vartype(type);

T(rows,S)

Especificaciones:

  • Número de filas (entre 1 y m)

  • Arreglo lógico que tiene m elementos

  • Nombres, si T tiene nombres de filas

  • Horas, si T es un horario

  • Dos puntos (:), para todas las filas

  • Palabra clave end, para la última fila

Especificado como subíndice de tipo de datos, como vartype("numeric"), vartype("categorical") o vartype("datetime")

  • S = vartype("numeric");

    T(1:5,S)

    Tabla que tiene las primeras cinco filas y las variables numéricas de T

Consulte también

| | |

Temas