Lecture de fichiers de données
Nous venons de voir comment écrire dans des fichiers mat
ou csv
, nous allons voir maintenant comment lire dans ce type de fichiers pour récupérer des données existantes.
L'objectif ici n'est pas de passer en revue toutes les fonctions de lecture de fichiers et d'importations de données qui existent, parce qu'il y a beaucoup plus que ce que nous allons présenter : nous nous concentrerons sur les plus courantes, et celles qui peuvent vous servir de point de départ. À partir de là, si pour votre cas d'usage vous devez aller plus loin, vous aurez les clés (et la documentation !) pour y parvenir.
fonction load
Pour récupérer les données contenues dans un fichier mat
, il faut utiliser la fonction load
, avec une syntaxe équivalente à celle de la fonction save
:
Syntaxe :
Si l'on veut lire toutes les variables d'un fichier mat
pour les rendre disponibles dans le workspace, il suffit d'utiliser la syntaxe :
1 | load (nom_Fichier_mat) ; |
où nom_Fichier_mat
est une chaîne de caractères correspondant au nom du fichier mat
que l'on souhaite lire.
Syntaxe :
Si l'on veut récupérer certaines variables uniquement, il suffit de préciser leurs noms, sous forme de chaînes de caractères :
1 | load (nom_Fichier_mat,nom_Variable_1,...,nom_Variable_n) ; |
où nom_Fichier_mat
est une chaîne de caractères correspondant au nom du fichier mat
que l'on souhaite lire, et nom_Variable_1
, ... , nom_Variable_n
sont les chaînes de caractères correspondant aux noms des variables spécifiques à récupérer.
Exemple :
1 | load ( 'SpectresRAMAN.mat' ) ; |
ou
1 | load ( 'SpectresRAMAN.mat' , 'DATAS' , 'LEGENDS' ) ; |
Remarque :
La fonction load
sait lire d'autres formats que les fichiers mat
: si le fichier à ouvrir est d'un autre format, load
fera automatiquement appel à d'autres fonctions (par exemple csvread
ou importdata
) afin d'employer la méthode la plus adaptée au format reconnu...
Méthode :
Vous pouvez récupérer localement le fichier SpectresRAMAN.mat
, à l'adresse :
http://nte.mines-albi.fr/MATLAB_DOCS/
ou directement dans MATLAB :
1 |
La fonction urlwrite
lit le contenu d'un fichier à partir de son URL et enregistre localement ce contenu dans un fichier.
fonction csvread
La fonction csvread
permet la lecture de données contenues dans un fichier de type CSV
.
1 2 3 4 5 6 7 8 9 10 11 12 13 | % Fabien Baillon et Jean-Louis Dirion - Nov.2014 % % Ceci est un petit exemple d'utilisation de csvread clear all clc % disp ( 'Lecture des données RAMAN contenues dans le fichier RAMAN.csv, avec la fonction csvread' ) DATAS= csvread ( 'RAMAN.csv' ); % disp ( '=> tracé des spectres RAMAN' ) ; plot (DATAS(:,1),DATAS(:,2: end )) ; xlabel ( '\lambda' ) ; ylabel ( 'Intensités I' ) ; |
Il est possible de ne récupérer qu'une partie des données, en spécifiant l'indice de ligne et de colonne de la première donnée lue :
1 2 | %lecture à partir de la ligne n°1599 et de la première colonne DATAS_2= csvread ( 'RAMAN.csv' ,1599,0); |
Attention :
Ici, la numérotation commence à 0 !
Attention :
La fonction csvread
ne sait lire que des données numériques.
fonction importdata
Un fichier de données peut comporter des lignes de commentaires, ou avoir un autre séparateur que la virgule. Dans ces cas là, la fonction csvread
est inadaptée.
On préférera alors utiliser la fonction importdata
.
La fonction importdata
est assez complexe, parce qu'elle permet de récupérer toutes sortes de données. Nous n'irons pas plus loin ici, mais voici un exemple qui peut vous inspirer...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | % Fabien Baillon et Jean-Louis Dirion - Nov.2014 % % Ceci est un petit exemple d'utilisation de importdata clear all clc % disp ( 'Lecture du titre, de l' 'entête des colonnes et des données RAMAN, avec la fonction importdata' ); % RD = importdata( 'RAMANdatas.csv' , ';' ,2); datas = RD.data; titre = RD.textdata(1); labels = RD.colheaders; % disp ( '=> tracé des spectres RAMAN avec légende' ); % plot (datas(:,1),datas(:,2: end )); xlabel (labels(1)); ylabel ( 'Intensités I' ); legend (labels(2: end )); title (titre); |
fonction uiimport
Une autre manière d’importer des données à partir d’un fichier consiste à utiliser la fonction uiimport
qui ouvre l’outil d’importation de données avec les données contenues dans le fichier sélectionné.
Syntaxe :
Si l'on veut lire toutes les données à partir d'un fichier de type tableur, texte délimité ou texte à largeur fixe, pour les rendre disponibles dans le workspace, il suffit d'utiliser la syntaxe
1 | uiimport(nom_Fichier) ; |
où nom_Fichier
est une chaîne de caractères correspondant au nom du fichier que l'on souhaite lire.
L’utilitaire d’importation de données va automatiquement s’ouvrir et récupérer les données de manière organisée. Il est alors possible de sélectionner, de manière interactive, les données que l’on veut importer, de modifier le type attribué par défaut à une colonne, de modifier l’intitulé d’une colonne, etc.
Ensuite en cliquant sur le bouton Import Selection, il est possible de choisir l’action à réaliser : soit d’importer les données sélectionnées dans l’espace de travail, soit de générer automatiquement un code MATLAB sous forme d’un script (ou d’une fonction ou d’un Live Script) qui pourra être ensuite utilisé pour l’importation des données. L’avantage sera alors de pouvoir réutiliser ce code pour importer des données en provenance d’autres fichiers (à condition naturellement que ces fichiers soient structurés de manière identique).
Complément :
Il est également possible d’accéder à l’utilitaire d’importation soit en double cliquant directement sur le nom du fichier de données dans la fenêtre Current Folder, soit en cliquant sur le bouton Import Data dans l’onglet HOME.