Créer des tables et leur affecter des données
Les tables conviennent aux données orientées colonnes telles que les données tabulaires de fichiers texte ou de feuilles de calcul. Les tables stockent les colonnes de données dans des variables. Les variables d’une table peuvent contenir différents types de données, mais elles doivent toutes comporter le même nombre de lignes. Toutefois, les variables de table ne se limitent pas au stockage de vecteurs colonne. Par exemple, une variable de table peut contenir une matrice à plusieurs colonnes tant qu’elle a le même nombre de lignes que les autres variables de la table.
Dans MATLAB®, il existe plusieurs façons de créer des tables et de leur affecter des données.
Créer une table à partir de tableaux en entrée avec la fonction
table.Ajouter des variables à une table existante avec la notation pointée.
Affecter des variables à une table vide.
Préallouer une table et la remplir avec des données par la suite.
Convertir des variables en tables avec les fonctions
array2table,cell2tableoustruct2table.Lire une table à partir d’un fichier avec la fonction
readtable.Importer une table avec l’outil d’importation.
La méthode choisie dépend de la nature de vos données et de la façon dont vous comptez utiliser des tables dans votre code.
Créer des tables à partir de tableaux en entrée
Vous pouvez créer une table à partir de tableaux avec la fonction table. Par exemple, créez une petite table avec des données relatives à cinq patients.
Tout d’abord, créez six tableaux de données orientés colonnes. Ces tableaux ont cinq lignes, car il y a cinq patients. (La plupart de ces tableaux sont des vecteurs colonne 5 x 1 alors que BloodPressure est une matrice 5 x 2.)
LastName = ["Sanchez";"Johnson";"Zhang";"Diaz";"Brown"]; Age = [38;43;38;40;49]; Smoker = [true;false;true;false;true]; Height = [71;69;64;67;64]; Weight = [176;163;131;133;119]; BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];
Ensuite, créez une table patients comme conteneur de ces données. Dans cet appel à la fonction table, les arguments en entrée utilisent les noms des variables de l’espace de travail comme noms des variables de patients.
patients = table(LastName,Age,Smoker,Height,Weight,BloodPressure)
patients=5×6 table
LastName Age Smoker Height Weight BloodPressure
_________ ___ ______ ______ ______ _____________
"Sanchez" 38 true 71 176 124 93
"Johnson" 43 false 69 163 109 77
"Zhang" 38 true 64 131 125 83
"Diaz" 40 false 67 133 117 75
"Brown" 49 true 64 119 122 80
La table est de dimension 5 x 6, car elle contient six variables. Comme le montre la variable BloodPressure, une variable de table peut elle-même contenir plusieurs colonnes. Cet exemple explique pourquoi les tables ont des lignes et des variables plutôt que des lignes et des colonnes.
Ajouter une variable à une table avec la notation pointée
Une fois que vous avez créé une table, vous pouvez à tout moment ajouter une nouvelle variable avec la notation pointée. La notation pointée fait référence aux variables de table par le nom T.varname, où T est la table et varname est le nom de la variable. Cette notation est semblable à celle utilisée pour accéder aux champs d’une structure et leur affecter des données.
Par exemple, ajoutez une variable BMI à patients. Calculez l’indice de masse corporelle (IMC), nommé BMI dans l’exemple pour « body mass index », à partir des valeurs de patients.Weight et patients.Height. Affectez les valeurs de BMI à une nouvelle variable de table.
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
Affecter des variables à une table vide
Une autre manière de créer une table consiste à commencer avec une table vide et à lui affecter des variables. Par exemple, recréez la table de données patients mais cette fois en affectant les variables avec la notation pointée.
Tout d’abord, créez une table vide patients2 en appelant table sans spécifier d’argument.
patients2 = table
patients2 = 0×0 empty table
Ensuite, créez une copie des données patients en affectant les variables. Les noms des variables de table ne doivent pas nécessairement correspondre aux noms des tableaux, comme vous pouvez le voir avec les variables de table Name et BP.
patients2.Name = LastName; patients2.Age = Age; patients2.Smoker = Smoker; patients2.Height = Height; patients2.Weight = Weight; patients2.BP = BloodPressure
patients2=5×6 table
Name Age Smoker Height Weight BP
_________ ___ ______ ______ ______ __________
"Sanchez" 38 true 71 176 124 93
"Johnson" 43 false 69 163 109 77
"Zhang" 38 true 64 131 125 83
"Diaz" 40 false 67 133 117 75
"Brown" 49 true 64 119 122 80
Préallouer une table et remplir les lignes
Il peut arriver que vous connaissiez la taille et le type des données que vous souhaitez stocker dans une table mais que vous comptiez affecter les données ultérieurement. Vous prévoyez peut-être d’ajouter seulement quelques lignes à la fois. Dans ce cas, il peut s'avérer plus efficace de préallouer de l’espace dans la table, puis d’affecter des valeurs aux lignes vides.
Par exemple, pour préallouer de l’espace à une table devant contenir des relevés d’heure et de température à différentes stations, utilisez la fonction table. Au lieu de spécifier des tableaux en entrée, indiquez la taille et le type de données des variables de table. Pour leur attribuer un nom, spécifiez l’argument 'VariableNames'. La préallocation renseigne les variables de table avec des valeurs par défaut correspondant à leur type de données.
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>
L’une des façons d’affecter ou d’ajouter une ligne à une table consiste à affecter un cell array à une ligne. Si le cell array est un vecteur ligne et que ses éléments ont les mêmes types de données que les variables correspondantes, l’affectation convertit le cell array en ligne de table. Cependant, vous ne pouvez affecter qu’une ligne à la fois avec des cell arrays. Affectez des valeurs aux deux premières lignes.
temps(1,:) = {75,datetime('now'),"S1"};
temps(2,:) = {68,datetime('now')+1,"S2"}temps=4×3 table
Temperature Time Station
___________ ____________________ _________
75 09-Aug-2025 12:02:44 "S1"
68 10-Aug-2025 12:02:44 "S2"
0 NaT <missing>
0 NaT <missing>
Vous pouvez également affecter les lignes d’une table plus petite à une table plus grande. Cette méthode permet d’affecter une ou plusieurs lignes à la fois.
temps(3:4,:) = table([63;72],[datetime('now')+2;datetime('now')+3],["S3";"S4"])
temps=4×3 table
Temperature Time Station
___________ ____________________ _______
75 09-Aug-2025 12:02:44 "S1"
68 10-Aug-2025 12:02:44 "S2"
63 11-Aug-2025 12:02:44 "S3"
72 12-Aug-2025 12:02:44 "S4"
Vous pouvez utiliser l’une ou l’autre de ces syntaxes pour augmenter la taille d’une table en affectant des lignes après la fin de la table. Si nécessaire, les lignes manquantes sont remplies avec des valeurs par défaut.
temps(6,:) = {62,datetime('now')+6,"S6"}temps=6×3 table
Temperature Time Station
___________ ____________________ _________
75 09-Aug-2025 12:02:44 "S1"
68 10-Aug-2025 12:02:44 "S2"
63 11-Aug-2025 12:02:44 "S3"
72 12-Aug-2025 12:02:44 "S4"
0 NaT <missing>
62 15-Aug-2025 12:02:44 "S6"
Convertir des variables en tables
Vous pouvez convertir des variables contenant d’autres types de données en tables. Les cell arrays et les structures sont d’autres types de conteneurs qui peuvent stocker des tableaux ayant différents types de données. Il est donc possible de convertir des cell arrays et des structures en tables. Vous pouvez également convertir un tableau en table dont les variables contiennent les colonnes de valeurs du tableau. Pour convertir ces types de variables, utilisez les fonctions array2table, cell2table ou struct2table.
Par exemple, convertissez un tableau en table avec array2table. Comme les colonnes d’un tableau n’ont pas de nom, la table utilise des noms de variables par défaut.
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
Vous pouvez indiquer vos propres noms de variables de table avec l’argument nom-valeur "VariableNames".
a2t = array2table(A,"VariableNames",["First","Second","Third"])
a2t=3×3 table
First Second Third
_____ ______ _____
3 3 1
3 2 2
1 1 3
Lire une table à partir d’un fichier
On trouve souvent une grande quantité de données tabulaires dans les fichiers de type CSV (valeurs séparées par des virgules) ou les feuilles de calcul Excel®. Pour lire ces données dans une table, utilisez la fonction readtable.
Par exemple, le fichier CSV outages.csv est un exemple de fichier distribué avec MATLAB. Il contient les données relatives à un ensemble de pannes d’électricité. La première ligne de outages.csv contient les noms des colonnes. Le reste du fichier contient des valeurs de données séparées par des virgules pour chaque panne. Les premières lignes sont présentées ici.
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 ...
Pour lire outages.csv et stocker les données dans une table, vous pouvez utiliser readtable. Cette fonction lit les valeurs numériques, les dates et heures et les chaînes de caractères en les stockant dans des variables de table ayant les types de données appropriés. Ici, Loss et Customers sont des tableaux numériques. Les variables OutageTime et RestorationTime sont des tableaux datetime, car readtable reconnaît les formats de date et d’heure du texte dans ces colonnes du fichier en entrée. Pour lire le reste des données textuelles dans des tableaux de chaînes de caractères, spécifiez l’argument nom-valeur "TextType".
outages = readtable("outages.csv","TextType","string")
outages=1468×6 table
Region OutageTime Loss Customers RestorationTime Cause
___________ ________________ ______ __________ ________________ _________________
"SouthWest" 2002-02-01 12:18 458.98 1.8202e+06 2002-02-07 16:50 "winter storm"
"SouthEast" 2003-01-23 00:49 530.14 2.1204e+05 NaT "winter storm"
"SouthEast" 2003-02-07 21:15 289.4 1.4294e+05 2003-02-17 08:14 "winter storm"
"West" 2004-04-06 05:44 434.81 3.4037e+05 2004-04-06 06:10 "equipment fault"
"MidWest" 2002-03-16 06:18 186.44 2.1275e+05 2002-03-18 23:23 "severe storm"
"West" 2003-06-18 02:49 0 0 2003-06-18 10:54 "attack"
"West" 2004-06-20 14:39 231.29 NaN 2004-06-20 19:16 "equipment fault"
"West" 2002-06-06 19:28 311.86 NaN 2002-06-07 00:51 "equipment fault"
"NorthEast" 2003-07-16 16:23 239.93 49434 2003-07-17 01:12 "fire"
"MidWest" 2004-09-27 11:09 286.72 66104 2004-09-27 16:37 "equipment fault"
"SouthEast" 2004-09-05 17:48 73.387 36073 2004-09-05 20:46 "equipment fault"
"West" 2004-05-21 21:45 159.99 NaN 2004-05-22 04:23 "equipment fault"
"SouthEast" 2002-09-01 18:22 95.917 36759 2002-09-01 19:12 "severe storm"
"SouthEast" 2003-09-27 07:32 NaN 3.5517e+05 2003-10-04 07:02 "severe storm"
"West" 2003-11-12 06:12 254.09 9.2429e+05 2003-11-17 02:04 "winter storm"
"NorthEast" 2004-09-18 05:54 0 0 NaT "equipment fault"
⋮
Importer une table avec l’outil d’importation
Enfin, vous pouvez prévisualiser et importer interactivement les données de feuilles de calcul ou de fichiers texte délimités avec l’outil d’importation. Il existe deux manières d’ouvrir l’outil d’importation.
Barre d’outils MATLAB : dans l’onglet Home, accédez à la section Variable et cliquez sur Import Data.
Invite de commande MATLAB : saisissez
uiimport(filename), oùfilenameest le nom d’un fichier texte ou d’un fichier de feuille de calcul.
Par exemple, ouvrez l’exemple de fichier outages.csv en utilisant uiimport et which pour obtenir le chemin du fichier.
uiimport(which("outages.csv"))
L’outil d’importation affiche un aperçu des six colonnes de outages.csv. Pour importer les données en tant que table, procédez comme suit.
Dans la section Imported Data, sélectionnez Table comme type de sortie.
Cliquez sur Import Selection (en haut à droite). La nouvelle table nommée
outagess’affiche dans votre espace de travail.

Voir aussi
Fonctions
readtable|table|array2table|cell2table|struct2table