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
- oderstruct2table
-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, wobeifilename
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.
Wählen Sie im Abschnitt Imported Data (Importierte Daten) die Option Table (Tabelle) als Ausgabetyp.
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.
Siehe auch
Funktionen
readtable
|table
|array2table
|cell2table
|struct2table