Hauptinhalt

Tabellen erstellen und ihnen Daten zuweisen

Tabellen eignen sich für spaltenorientierte Daten wie z. B. tabellarische Daten aus Textdateien oder Tabellenkalkulationen. Tabellen speichern spaltenweise Daten in Variablen. Die Variablen in einer Tabelle können unterschiedliche Datentypen haben, aber alle Variablen müssen die gleiche Anzahl von Zeilen haben. Tabellenvariablen sind jedoch nicht auf das Speichern von Spaltenvektoren beschränkt. Eine Tabellenvariable kann z. B. eine Matrix mit mehreren Spalten enthalten, sofern sie die gleiche Anzahl von Zeilen wie die anderen Tabellenvariablen besitzt.

In MATLAB® können Sie Tabellen erstellen und ihnen auf unterschiedliche Arten Daten zuweisen.

  • Erstellen Sie mit der table-Funktion eine Tabelle aus Eingabe-Arrays.

  • Fügen Sie Variablen zu einer bestehenden Tabelle hinzu, indem Sie die Punktnotation verwenden.

  • Weisen Sie einer leeren Tabelle Variablen zu.

  • Belegen Sie eine Tabelle vor und befüllen Sie sie später mit Daten.

  • Konvertieren Sie mit der array2table-, cell2table- oder struct2table-Funktion Variablen in Tabellen.

  • Lesen Sie mit der readtable-Funktion eine Tabelle aus einer Datei.

  • Importieren Sie eine Tabelle mit dem Importwerkzeug.

Welche Methode Sie wählen, hängt von der Art Ihrer Daten ab und davon, wie Sie Tabellen in Ihrem Code verwenden wollen.

Erstellen von Tabellen aus Eingabe-Arrays

Mit der table-Funktion können Sie eine Tabelle aus Arrays erstellen. Erstellen Sie zum Beispiel eine kleine Tabelle mit Daten von fünf Patienten.

Erstellen Sie zunächst sechs spaltenorientierte Arrays mit Daten. Diese Arrays haben fünf Zeilen, weil es fünf Patienten gibt. (Die meisten dieser Arrays sind 5×1-Spaltenvektoren, während BloodPressure eine 5×2-Matrix ist.)

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];

Erstellen Sie nun die Tabelle patients als Container für die Daten. In diesem Aufruf der table-Funktion verwenden die Eingabeargumente die Namen der Workspace-Variablen für die Namen der Variablen in 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  

Die Tabelle ist eine 5×6-Tabelle, weil sie sechs Variablen besitzt. Wie die Variable BloodPressure zeigt, kann eine Tabellenvariable selbst mehrere Spalten haben. Dieses Beispiel zeigt, warum Tabellen Zeilen und Variablen anstelle von Zeilen und Spalten haben.

Hinzufügen einer Variable zur Tabelle mit Punktnotation

Sobald Sie eine Tabelle erstellt haben, können Sie jederzeit eine neue Variable hinzufügen, indem Sie die Punktnotation verwenden. Die Punktnotation verweist auf Tabellenvariablen mit Namen, T.varname, wobei T die Tabelle und varname der Variablenname ist. Diese Notation ähnelt der Notation, die Sie für den Zugriff auf und die Zuweisung von Daten zu den Feldern einer Struktur verwenden.

Fügen Sie zum Beispiel eine BMI-Variable zu patients hinzu. Berechnen Sie den Body-Mass-Index (BMI) anhand der Werte in patients.Weight und patients.Height. Weisen Sie die BMI-Werte einer neuen Tabellenvariablen zu.

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

Variablen einer leeren Tabelle zuweisen

Eine andere Möglichkeit, eine Tabelle zu erstellen, besteht darin, mit einer leeren Tabelle zu beginnen und ihr Variablen zuzuweisen. Erstellen Sie zum Beispiel die Tabelle mit den Patientendaten neu, aber weisen Sie diesmal die Variablen in Punktnotation zu.

Erstellen Sie zunächst die leere Tabelle patients2, indem Sie table ohne Argumente aufrufen.

patients2 = table
patients2 =

  0×0 empty table

Erstellen Sie als nächstes eine Kopie der Patientendaten, indem Sie Variablen zuweisen. Wie man an den Tabellenvariablen Name und BP sieht, müssen die Namen von Tabellenvariablen nicht mit den Namen von Arrays übereinstimmen.

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

Vorbelegen von Tabellen und zeilenweises Befüllen

Manchmal kennen Sie die Größen und Datentypen der Daten, die Sie in einer Tabelle speichern möchten, aber Sie haben vor, die Daten später zuzuordnen. Vielleicht möchten Sie nur ein paar Zeilen auf einmal hinzufügen. In diesem Fall kann es effizienter sein, den Platz in der Tabelle vorzubelegen und dann leeren Zeilen Werte zuzuordnen.

Verwenden Sie zum Beispiel die table-Funktion, um Platz für eine Tabelle vorzubelegen, die Zeit- und Temperaturwerte an verschiedenen Stationen enthält. Geben Sie die Größen und Datentypen der Tabellenvariablen an, anstatt Eingabe-Arrays zu liefern. Geben Sie das 'VariableNames'-Argument an, um sie mit Namen zu versehen. Die Vorbelegung befüllt Tabellenvariablen mit Standardwerten, die für ihre Datentypen geeignet sind.

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>

Eine Möglichkeit, einer Tabelle eine Zeile zuzuweisen oder hinzuzufügen, besteht darin, einer Zeile ein Zellen-Array zuzuweisen. Wenn das Zellen-Array ein Zeilenvektor ist und seine Elemente mit den Datentypen ihrer jeweiligen Variablen übereinstimmen, konvertiert die Zuweisung das Zellen-Array in eine Tabellenzeile. Mit Zellen-Arrays können Sie allerdings jeweils nur eine Zeile zuweisen. Weisen Sie den ersten beiden Zeilen Werte zu.

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

        75         13-Jul-2025 18:48:15    "S1"     
        68         14-Jul-2025 18:48:15    "S2"     
         0                          NaT    <missing>
         0                          NaT    <missing>

Alternativ dazu können Sie auch Zeilen aus einer kleineren Tabelle in eine größere Tabelle übertragen. Mit dieser Methode können Sie eine oder mehrere Zeilen auf einmal zuweisen.

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

        75         13-Jul-2025 18:48:15     "S1"  
        68         14-Jul-2025 18:48:15     "S2"  
        63         15-Jul-2025 18:48:15     "S3"  
        72         16-Jul-2025 18:48:15     "S4"  

Sie können beide Syntaxen verwenden, um die Größe einer Tabelle zu erhöhen, indem Sie Zeilen über das Ende der Tabelle hinaus zuweisen. Fehlende Zeilen werden gegebenenfalls mit Standardwerten aufgefüllt.

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

        75         13-Jul-2025 18:48:15    "S1"     
        68         14-Jul-2025 18:48:15    "S2"     
        63         15-Jul-2025 18:48:15    "S3"     
        72         16-Jul-2025 18:48:15    "S4"     
         0                          NaT    <missing>
        62         19-Jul-2025 18:48:15    "S6"     

Konvertieren von Variablen in Tabellen

Sie können Variablen, die andere Datentypen haben, in Tabellen konvertieren. Zellen-Arrays und Strukturen sind weitere Arten von Containern, die Arrays mit unterschiedlichen Datentypen speichern können. Sie können also Zellen-Arrays und Strukturen in Tabellen konvertieren. Sie können ein Array auch in eine Tabelle konvertieren, wobei die Tabellenvariablen Spalten mit Werten aus dem Array enthalten. Um diese Art von Variablen zu konvertieren, verwenden Sie die array2table-, cell2table- oder struct2table-Funktion.

Konvertieren Sie zum Beispiel mit array2table ein Array in eine Tabelle. Arrays haben keine Spaltennamen, daher hat die Tabelle Standardvariablennamen.

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 

Mit dem "VariableNames"-Name-Wert-Argument können Sie Ihre eigenen Namen für Tabellenvariablen angeben.

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

      3        3         1  
      3        2         2  
      1        1         3  

Lesen einer Tabelle aus einer Datei

Dateien wie CSV-Dateien (kommagetrennte Werte) oder Excel®-Tabellen enthalten häufig eine große Menge tabellarischer Daten. Verwenden Sie die readtable-Funktion, um solche Daten in eine Tabelle zu lesen.

Die CSV-Datei outages.csv ist eine Beispieldatei, die mit MATLAB geliefert wird. Sie enthält Daten für eine Reihe von Stromausfällen. Die erste Zeile von outages.csv enthält Spaltennamen. Der Rest der Datei enthält kommagetrennte Datenwerte für jeden Ausfall. Die ersten Zeilen sind hier abgebildet.

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
...

Mit der readtable-Funktion können Sie outages.csv lesen und die Daten in einer Tabelle speichern. Sie liest numerische Werte, Datums- und Zeitangaben sowie Zeichenfolgen in Tabellenvariablen mit entsprechendem Datentyp. Hier sind Loss und Customers numerische Arrays. Die Variablen OutageTime und RestorationTime sind datetime-Arrays, da readtable die Datums- und Zeitformate des Textes in diesen Spalten der Eingabedatei erkennt. Geben Sie das "TextType"-Name-Wert-Argument an, um den Rest der Textdaten in String Arrays einzulesen.

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

Importieren einer Tabelle mit dem Importwerkzeug

Schließlich können Sie mit dem Importwerkzeug interaktiv eine Vorschau anzeigen und Daten aus Tabellenkalkulationen oder Textdateien mit Trennzeichen importieren. Es gibt zwei Möglichkeiten, das Importwerkzeug zu öffnen.

  • MATLAB Toolstrip: Klicken Sie auf der Registerkarte Home im Bereich Variable auf Import Data (Daten importieren).

  • MATLAB-Eingabeaufforderung: Geben Sie uiimport(filename) ein, wobei filename der Name einer Text- oder Tabellenkalkulationsdatei ist.

Öffnen Sie beispielsweise die Beispieldatei outages.csv, wobei Sie mit uiimport und which den Pfad zur Datei erhalten.

uiimport(which("outages.csv"))

Das Importwerkzeug zeigt Ihnen eine Vorschau der sechs Spalten aus outages.csv. Gehen Sie wie folgt vor, um die Daten als Tabelle zu importieren.

  1. Wählen Sie im Abschnitt Imported Data (Importierte Daten) die Option Table (Tabelle) als Ausgabetyp.

  2. Klicken Sie auf Import Selection (Auswahl importieren) in der Nähe der oberen rechten Ecke. Die neue Tabelle mit dem Namen outages erscheint nun in Ihrem Workspace.

importToolOutages.png

Siehe auch

Funktionen

Apps

Themen