Hauptinhalt

Zugreifen auf Daten in Tabellen

Eine Tabelle ist ein Container, der spaltenorientierte Daten in Variablen speichert. Um auf die Daten in einer Tabelle zuzugreifen, können Sie die Tabelle durch Angabe von Zeilen und Variablen indizieren, genauso wie Sie eine Matrix durch Angabe von Zeilen und Spalten indizieren können. Tabellenvariablen haben Namen, ebenso wie die Felder einer Struktur Namen haben. Die Zeilen einer Tabelle können ebenfalls Namen haben, jedoch sind Zeilennamen nicht erforderlich. Um eine Tabelle zu indizieren, geben Sie Zeilen und Variablen entweder anhand von Positionen, Namen oder Datentypen an. Das Ergebnis kann entweder ein Array oder eine Tabelle sein.

In diesem Abschnitt werden die verschiedenen Indizierungssyntaxen für Tabellen beschrieben und wann die einzelnen Typen verwendet werden sollten. Weitere Beispiele veranschaulichen die verschiedenen Möglichkeiten, diese Arten der Tabellenindizierung anzuwenden. In der Tabelle am Ende des Abschnitts sind die Indizierungssyntaxen, die Angabe von Zeilen und Variablen sowie die resultierenden Ausgaben zusammengefasst.

Indizierungssyntaxen für Tabellen

Je nach Art der verwendeten Indizierung ist das Ergebnis entweder ein aus der Tabelle extrahiertes Array oder eine neue Tabelle. Indizierung mit:

  • Punktnotation, wie in T.varname oder T.(expression), extrahiert ein Array aus einer Tabellenvariablen.

  • Geschweifte Klammern, wie in T{rows,vars}, extrahieren ein Array aus den angegebenen Zeilen und Variablen. Die Variablen müssen kompatible Datentypen aufweisen, damit sie zu einem Array verkettet werden können.

  • Klammern, wie in T(rows,vars), geben eine Tabelle zurück, die nur die angegebenen Zeilen und Variablen enthält.

Dieses Diagramm veranschaulicht die drei Arten der Tabellenindizierung.

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.

Empfohlene Indizierungssyntaxen

Die empfohlene Methode für den Zugriff auf die Inhalte einer Tabelle hängt vom gewünschten Ergebnis und der Anzahl der angegebenen Variablen ab. In diesen Syntaxbeispielen ist T eine Tabelle mit den Variablen Var1, Var2 und Var3. (Wenn Sie beim Aufruf der Funktion table keine Variablennamen angeben, werden diese Namen als Standardnamen verwendet.)

T = table([1;2;3;4;5],[5;10;15;20;25],[150;300;450;600;750])
  • Um auf eine Tabellenvariable zuzugreifen, verwenden Sie die Punktnotation. Geben Sie einen Variablennamen oder einen Ausdruck an, der mit dem Namen oder der Position einer Variablen übereinstimmt.

    Die Verwendung von Klarnamen für Variablen ist schneller als die Verwendung von Ausdrücken. Beispielsweise greifen sowohl T.Var1 als auch T.(1) auf die erste Variable von T zu, jedoch ist die Verwendung des Ausdrucks langsamer.

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

    Sie können auch eine Variable mithilfe von geschweiften Klammern angeben. Der Zugriff auf eine Variable mithilfe der Punktschreibweise ist jedoch schneller als der Zugriff auf eine Variable mithilfe von geschweiften Klammern.

  • Verwenden Sie geschweifte Klammern, um auf mehrere Tabellenvariablen zuzugreifen.

    X = T{:,["Var1","Var2"]}
    Y = T{1:3,["Var1","Var2"]}
    T{:,["Var1","Var2"]} = T{:,["Var1","Var2"]} .* 10
    
  • Verwenden Sie Klammern, um eine Tabelle zurückzugeben, die nur bestimmte Zeilen und Variablen enthält.

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

Indizieren durch Angabe von Zeilen und Variablen

Sie können Tabellen indizieren, indem Sie numerische Indizes, Zeilen- und Variablennamen oder Variablendatentypen angeben.

Erstellen Sie eine Tabelle. Laden Sie die Daten-Arrays aus der Beispieldatei patients.mat. Erstellen Sie anschließend aus diesen Arrays eine Tabelle mit der Funktion table. Die Namen der Eingabe-Arrays werden zu den Namen der Tabellenvariablen. Zeilennamen sind optional. Verwenden Sie das Name-Wert-Argument RowNames, um Zeilennamen anzugeben.

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  
      ⋮

Indizieren nach Position

Sie können Tabellen indizieren, indem Sie Positionen als numerische Indizes angeben. Sie können auch Doppelpunkte und das Schlüsselwort end verwenden.

Indizieren Sie beispielsweise die ersten drei Zeilen von T. Diese Syntax stellt eine kompakte Methode dar, um eine Tabelle mit der angegebenen Anzahl von Zeilen zurückzugeben.

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 

Geben Sie eine Tabelle mit den ersten beiden Variablen und den letzten drei Zeilen von T zurück.

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

    Griffin    49       70  
    Diaz       45       68  
    Hayes      48       66  

Wenn die Variablen kompatible Datentypen aufweisen, können Sie geschweifte Klammern verwenden, um die extrahierten Daten als Array zurückzugeben.

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

    49    70
    45    68
    48    66

Indizieren nach Variablennamen

Sie können Tabellen indizieren, indem Sie Variablennamen mithilfe eines Zeichenfolgen-Arrays angeben. Tabellenvariablennamen müssen keine gültigen MATLAB®-Bezeichner sein. Sie können Leerzeichen und Nicht-ASCII-Zeichen enthalten und mit jedem beliebigen Zeichen beginnen.

Geben Sie beispielsweise eine Tabelle zurück, die nur die ersten drei Zeilen von T und die Variablen Height und Weight enthält.

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

    Smith         71       176  
    Johnson       69       163  
    Williams      64       131  

Verwenden Sie geschweifte Klammern, um die Daten als Array zurückzugeben.

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

    71   176
    69   163
    64   131

Sie können auch die Punktschreibweise verwenden, um eine Variable zu indizieren. Tatsächlich ist die Punktschreibweise effizienter, wenn Sie nur auf eine Variable zugreifen.

heightAsArray = T.Height
heightAsArray = 100×1

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

Verwenden Sie die Punktschreibweise, um die ersten drei Zeilen der Variablen Height als Array zurückzugeben.

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

    71
    69
    64

Indizieren nach Zeilennamen

Wenn eine Tabelle Zeilennamen enthält, können Sie diese nicht nur anhand der Zeilennummer, sondern auch anhand des Zeilennamens indizieren. Geben Sie beispielsweise die Zeilen T für drei bestimmte Patienten zurück.

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 

Sie können auch geschweifte Klammern verwenden, um die Daten als Array zurückzugeben.

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

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

Indizieren in ein Element

Um auf ein Element einer Tabelle zuzugreifen, geben Sie eine Zeile und eine Variable an. Verwenden Sie geschweifte Klammern, um das Element als Array zurückzugeben, in diesem Fall einen Skalarwert.

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

Verwenden Sie Klammern, um dieses Element als Tabelle mit einer Zeile und einer Variablen zurückzugeben.

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

    Diaz      68  

Indizieren nach variablem Datentyp

Um eine Tabelle durch Angabe von Variablen mit demselben Datentyp zu indizieren, erstellen Sie einen Datentyp-Index mit der Funktion vartype.

Erstellen Sie beispielsweise einen Datentyp-Index, der mit numerischen Tabellenvariablen übereinstimmt.

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

		Select table variables matching the type 'numeric'

	See Access Data in a Table.

Geben Sie eine Tabelle zurück, die ausschließlich die numerischen Variablen von T enthält. Die Variable Smoker ist nicht enthalten, da es sich um eine logische Variable handelt.

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  
      ⋮

Zuweisen von Werten zur Tabelle

Sie können jede beliebige Indizierungssyntax verwenden, um einer Tabelle Werte zuzuweisen. Sie können Variablen, Zeilen oder einzelnen Elementen Werte zuweisen.

Zuweisen von Werten zu Variablen

Importieren Sie Daten zu Stromausfällen aus einer Tabellenkalkulation mithilfe der Funktion readtable in eine Tabelle.

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

Um einer Variablen Werte zuzuweisen, verwenden Sie die Punktschreibweise. Skalieren Sie beispielsweise die Variable Loss um den Faktor 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"
      ⋮

Sie können Daten auch mehreren Variablen zuweisen, indem Sie geschweifte Klammern verwenden. Die Variablen müssen kompatible Datentypen aufweisen. Skalieren Sie beispielsweise Loss und Customers um den Faktor 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"
      ⋮

Zuweisen von Werten zu Zeilen

Um einer Tabelle eine Zeile zuzuweisen, können Sie entweder eine einzeilige Tabelle oder ein Zellenarray verwenden. In diesem Fall kann die Verwendung eines Zellenarrays praktischer sein als das Erstellen und Zuweisen einer einzeiligen Tabelle.

Weisen Sie beispielsweise Daten einer neuen Zeile am Ende von outages zu. Zeigen Sie das Ende der Tabelle an.

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-08-09 12:26        17.3         325     2025-08-10 00:00    "unknown"        

Um Daten mehreren Zeilen zuzuweisen, verwenden Sie Werte aus einer anderen Tabelle, die Variablen mit denselben Namen und Datentypen enthält. Erstellen Sie beispielsweise eine neue Tabelle mit zwei Zeilen.

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"

Weisen Sie die zweizeilige Tabelle den ersten beiden Zeilen von outages zu. Anschließend werden die ersten vier Zeilen von outages angezeigt.

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"

Zuweisen von Werten zu Elementen

Verwenden Sie geschweifte Klammern, um Elementen einer Tabelle Werte zuzuweisen. Weisen Sie beispielsweise den ersten beiden Ausfällen Ursachen zu.

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"

Finden von Tabellenzeilen, in denen Werte Bedingungen erfüllen

Um die Zeilen einer Tabelle zu finden, in denen Werte bestimmte Bedingungen erfüllen, verwenden Sie die logische Indizierung. Geben Sie die Tabellenvariablen an, deren Werte von Interesse sind, und erstellen Sie ein Array von Zeilenindizes, in denen die Werte dieser Variablen die von Ihnen festgelegten Bedingungen erfüllen. Indizieren Sie die Tabelle mithilfe der Zeilenindizes.

Importieren Sie zunächst die Daten zu Stromausfällen aus einer Tabellenkalkulation in eine Tabelle.

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

Erstellen Sie anschließend Zeilenindizes, die den Zeilen entsprechen, in denen eine Variable eine Bedingung erfüllt. Erstellen Sie beispielsweise Indizes für Zeilen, in denen die Region West angegeben ist.

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
      ⋮

Sie können eine Tabelle mit logischen Indizes indizieren. Zeigen Sie die Zeilen der Tabelle für die Ausfälle an, die in der Region West auftreten.

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

Sie können mehrere Bedingungen mit einem logischen Ausdruck verknüpfen. Ermitteln Sie beispielsweise die Zeilen, in denen die Ausfälle mehr als eine Million Kunden in den Regionen West oder MidWest betroffen haben.

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"

Zusammenfassung der Indizierungssyntaxen für Tabellen

Diese Tabelle listet alle Indizierungssyntaxen für Tabellen mit allen Indizierungstypen und den entsprechenden Ergebnissen auf. Sie können Zeilen und Variablen nach Position, Name oder Datentyp angeben.

  • Lineare Indizierung wird nicht unterstützt. Wenn Sie mit geschweiften Klammern oder runden Klammern indizieren, müssen Sie sowohl Zeilen als auch Variablen angeben.

  • Variablennamen und Zeilennamen können beliebige Zeichen enthalten, einschließlich Leerzeichen und Nicht-ASCII-Zeichen. Außerdem können sie mit jedem Zeichen beginnen, nicht nur mit Buchstaben. Variablen- und Zeilennamen müssen keine gültigen MATLAB-Bezeichner sein (gemäß der Funktion isvarname).

  • Wenn Sie Zeilen oder Variablen anhand ihres Namens angeben, können Sie ein pattern-Objekt verwenden, um Namen anzugeben. Beispielsweise entspricht "Var" + digitsPattern allen Namen, die mit Var beginnen und mit einer beliebigen Anzahl von Ziffern enden. (seit R2022a)

Ausgabe

Syntax

Zeilen

Variablen

Beispiele

Array, mit Daten, die aus einer Variablen extrahiert wurden

T.var

T.(expression)

Nicht angegeben

Angegeben als:

  • Ein Variablenname (ohne Anführungszeichen)

  • Ein Ausdruck in Klammern, der einen Variablennamen oder eine Zahl zurückgibt

  • T.Date

    Array extrahiert aus der Tabellenvariablen mit dem Namen Date

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

    Array extrahiert aus der Tabellenvariablen mit dem Namen 2019-06-30

  • T.(1)

    Array extrahiert aus der ersten Tabellenvariablen

Array mit bestimmten Datenelementen, die aus einer Variablen extrahiert wurden

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

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

Nicht angegeben

Die Indizes i,j,... bezeichnen keine Zeilen der Tabelle, sondern Elemente des extrahierten Arrays.

Angegeben als:

  • Ein Variablenname (ohne Anführungszeichen)

  • Ein Ausdruck in Klammern, der einen Variablennamen oder eine Zahl zurückgibt

Geben Sie Array-Elemente mithilfe numerischer oder logischer Indizes an.

Wenn es sich bei dem extrahierten Array um eine Matrix oder ein mehrdimensionales Array handelt, können Sie mehrere numerische Indizes angeben.

  • T.Date(1:5)

    Die ersten fünf Elemente des Arrays, die aus der Tabellenvariablen mit dem Namen Date extrahiert wurden

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

    Die ersten fünf Elemente des Arrays, die aus der Tabellenvariablen mit dem Namen 2019-06-30 extrahiert wurden

  • T.(1)(1:5)

    Die ersten fünf Elemente des Arrays, die aus der ersten Tabellenvariablen extrahiert wurden

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

    Die ersten fünf Zeilen und die ersten drei Spalten der Matrix oder des mehrdimensionalen Arrays, die aus der Tabellenvariablen mit dem Namen Var1 extrahiert wurden

Array mit Daten, die aus bestimmten Zeilen und Variablen verkettet wurden

T{rows,vars}

Angegeben als:

  • Zeilennummern (zwischen 1 und m)

  • Logisches Array mit m Elementen

  • Namen, falls T Zeilennamen enthält

  • Zeiten, wenn T ein Zeitplan ist

  • Doppelpunkt (:), d. h. alle Zeilen

  • Schlüsselwort end, d. h. letzte Zeile

Angegeben als:

  • Variable Zahlen (zwischen 1 und n)

  • Logisches Array mit n Elementen

  • Namen

  • Doppelpunkt (:), d. h. alle Variablen

  • Schlüsselwort end, d. h. letzte Variable

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

    Array, das aus den ersten fünf Zeilen und der ersten, vierten und fünften Variablen von T verkettet wurde

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

    Array, das aus den ersten fünf Zeilen und der ersten, vierten und fünften Variablen von T verkettet wurde

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

    Array, das aus allen Zeilen und den Variablen mit den Namen A und B verkettet wurde

  • T{:,"A" + wildcardPattern}

    Array, das aus allen Zeilen und den Variablen, deren Namen mit A beginnen, verkettet wurde

Array mit Daten, die aus bestimmten Zeilen und Variablen mit einem bestimmten Datentyp verkettet wurden

S = vartype(type);

T{rows,S}

Angegeben als:

  • Zeilennummern (zwischen 1 und m)

  • Logisches Array mit m Elementen

  • Namen, falls T Zeilennamen enthält

  • Zeiten, wenn T ein Zeitplan ist

  • Doppelpunkt (:), d. h. alle Zeilen

  • Schlüsselwort end, d. h. letzte Zeile

Als Datentyp-Index angegeben, beispielsweise vartype("numeric"), vartype("categorical") oder vartype("datetime")

  • S = vartype("numeric");

    T{1:5,S}

    Array, das aus den ersten fünf Zeilen und den numerischen Variablen von T verkettet wurde

Array mit Daten, die aus allen Zeilen und Variablen verkettet wurden

T.Variables

Nicht angegeben

Nicht angegeben

  • T.Variables

    Identisch mit dem von T{:,:} zurückgegebenen Array

Tabelle mit angegebenen Zeilen und Variablen

T(rows,vars)

Angegeben als:

  • Zeilennummern (zwischen 1 und m)

  • Logisches Array mit m Elementen

  • Namen, falls T Zeilennamen enthält

  • Zeiten, wenn T ein Zeitplan ist

  • Doppelpunkt (:), d. h. alle Zeilen

  • Schlüsselwort end, d. h. letzte Zeile

Angegeben als:

  • Variable Zahlen (zwischen 1 und n)

  • Logisches Array mit n Elementen

  • Namen

  • Doppelpunkt (:), d. h. alle Variablen

  • Schlüsselwort end, d. h. letzte Variable

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

    Tabelle, die die ersten fünf Zeilen und die erste, vierte und fünfte Variable von T enthält

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

    Tabelle, die die ersten fünf Zeilen und die erste, vierte und fünfte Variable von T enthält

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

    Tabelle, die alle Zeilen und die Variablen mit den Namen A und B enthält

  • T(:,"A" + wildcardPattern)

    Tabelle, die alle Zeilen und Variablen enthält, deren Namen mit A beginnen

Tabelle mit bestimmten Zeilen und Variablen, die einen bestimmten Datentyp aufweisen

S = vartype(type);

T(rows,S)

Angegeben als:

  • Zeilennummern (zwischen 1 und m)

  • Logisches Array mit m Elementen

  • Namen, falls T Zeilennamen enthält

  • Zeiten, wenn T ein Zeitplan ist

  • Doppelpunkt (:), d. h. alle Zeilen

  • Schlüsselwort end, d. h. letzte Zeile

Als Datentyp-Index angegeben, beispielsweise vartype("numeric"), vartype("categorical") oder vartype("datetime")

  • S = vartype("numeric");

    T(1:5,S)

    Tabelle mit den ersten fünf Zeilen und den numerischen Variablen von T

Siehe auch

| | |

Themen