Importer des données tableur
Il est souvent pratique d'analyser des données lorsque celles-ci se présentent sous la forme d'un tableur.
A titre d'exemple, on va importer des données d'une feuille de calcul Excel dans une interface graphique.
Cette feuille de calcul comprend deux colonnes L et U, de 31 lignes chacune. Ci-après un extrait que nous avons appelé relevé distance.xlsx:
L'interface graphique sera principalement composée de deux composants:
un tableau et un bouton appelé "Importer".
Lorsque l'usager va cliquer sur "Importer", la feuille de calcul Excel sera importée et son contenu affiché dans l'interface graphique.
Pour éviter de préciser le chemin complet au moment d'importer la feuille de calcul Excel, il est plus convenable de placer le répertoire dans lequel se trouve ce fichier dans le path Matlab.
Pour ce faire: cliquer sur l'onglet Set path -- puis sur Add Folder dans la fenêtre qui s'ouvre, sélectionner le répertoire dans lequel se trouve votre fichier Excel; valider, puis cliquer sur Save. Fermer la fenêtre de dialogue. Vous pouvez désormais importer votre fichier sans spécifier son chemin complet dans Matlab.
Callback du bouton:
Le Callback du bouton "Importer" aura l'allure suivante:
% Callbacks that handle component events
methods (Access = private)
% Button pushed function: ImporterButton
function ImporterButtonPushed(app, event)
tuto_table = readtable("relevé distance.xlsx", "Sheet",1);
tuto_table.Properties.VariableNames{1} = 'Distance(cm)';
tuto_table.Properties.VariableNames{2} = 'Tension(V)';
app.UITable.Data = tuto_table;
app.UITable.ColumnName = tuto_table.Properties.VariableNames;
end
end
Les données de la feuille de calcul Excel, sont stockés dans la variable de type tableau tuto_table grâce à la fonction prédéfinie Matlab readtable().
Puis le contenu de la variable tuto_table est envoyé vers l'élément tableau de la face avant UITable: app.UITable.Data = tuto_table;
Ensuite, il faut aussi changer les titres des colonnes L et U par:
Distance(cm) et Tension(V).
Avant de réaliser cela, nous allons d'abord afficher les propriétés de la nouvelle table importée; dans la fenêtre de commandes Matlab. On va saisir la commande suivante suivie de la touche clavier "Entrer":
>> tuto_table = readtable("relevé distance.xlsx","Sheet", 1);
Puis:
>> tuto_table.Properties
Suivie de la touche clavier "Entrer", on obtient:
ans =
TableProperties with properties:
Description: ''
UserData: []
DimensionNames: {'Row' 'Variables'}
VariableNames: {'L' 'U'}
VariableDescriptions: {}
VariableUnits: {}
VariableContinuity: []
RowNames: {}
CustomProperties: No custom properties are set.
Use addprop and rmprop to modify CustomProperties.
Selon ce qui est affiché, VariableNames est une structure qui contient deux éléments L et U, qu' on peut modifier.
Si l'on saisi par exemple :
>> tuto_table.Properties.VariableNames{1}
Puis la touche clavier "Entrer", le résultat suivant sera affiché:
ans =
'L'
Il suffit de désigner l'élément que l'on veut modifier. C'est le rôle des deux instructions:
tuto_table.Properties.VariableNames{1} = 'Distance(cm)';
tuto_table.Properties.VariableNames{2} = 'Tension(V)';
Les noms des deux colonnes seront désormais "Distance(cm)" et "Tension(V)". Pour finir, il faut mettre à jour l'affichage grâce à l'instruction:
app.UITable.ColumnName = tuto_table.Properties.VariableNames;
Pour que ces modifications soient prises en compte.
Si on exécute le programme, puis un clic sur le bouton "Importer" le tableau des données importées depuis une feuille de calcul Excel sera affiché sur la face avant.
Ci-dessous un résumé en vidéo:
D'autres formats de fichiers peuvent aussi être importés dans Matlab, des fichiers .csv ou .txt; il en existe certainement d'autres; voir le site Mathworks.