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 :

load(nom_Fichier_mat) ;

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 :

load(nom_Fichier_mat,nom_Variable_1,...,nom_Variable_n) ;

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

load('SpectresRAMAN.mat') ;

ou

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 :

urlwrite('http://nte.mines-albi.fr/MATLAB_DOCS/SpectresRAMAN.mat','SpectresRAMAN.mat');

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.

% 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 :

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

Exemple de fichiers CSV comportant des lignes de commentaires et avec comme séparateur le point-virgule

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

% 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);
Spectres RAMAN récupérés d'un fichier de données CSV
Spectres RAMAN récupérés d'un fichier de données CSV

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 

uiimport(nom_Fichier) ;

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

aperçu de l'Import Data ToolInformations[1]

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.