Je sais que c'est vraiment basique, mais je suis nouveau sur MATLAB. Après avoir ouvert un fichier .fig, comment travaillez-vous réellement avec les données tracées dans la fenêtre de commande? Tout ce que je vois, c'est l'intrigue. Je ne sais pas vraiment comment obtenir les données.
En fait, vous n'avez même pas besoin d'afficher le chiffre pour obtenir les données. Les fichiers FIG sont stockés au format MATlab MAT standard, que vous pouvez lire à l'aide de la fonction intégrée load () . Les poignées et les données de la figure sont stockées dans une structure que vous pouvez facilement comprendre et traiter.
Voici un moyen très simple:
Cliquez sur l'objet dont vous souhaitez obtenir les données. Il n'y aura aucune indication que vous ayez cliqué dessus.
>> xd = get(gco,'XData');
>> yd = get(gco,'YData');
Parfois, il peut être difficile de cliquer sur la ligne ou sur un autre objet lui-même. Si vous rencontrez ce problème, cliquez sur les axes contenant le ou les enfants qui vous intéressent, puis:
>> kids = get(gca,'Children');
Cela vous donnera un éventail de poignées pour les différents enfants. Vous pouvez essayer de les obtenir un par un en les indexant sur les enfants, ou utiliser ce qui suit pour obtenir toutes les données à la fois. Cela retournera les résultats sous forme de tableau de cellules, ce qui peut être un peu difficile si vous ne les avez pas utilisés auparavant:
>> xd = get(kids,'XData');
>> yd = get(kids,'YData');
>> xd1 = xd{1}; %# X Data from first line
Essayez hgload, puis fouillez la structure de la poignée graphique qu'elle renvoie. Par exemple, si vous tracez et enregistrez les éléments suivants:
x=0:.01:10;
y=sin(x);
h=plot(x,y);
saveas(h,'testfigure.fig');
Videz votre espace de travail et ouvrez la figure enregistrée à l'aide de hgload:
clear
close all
h=hgload('testfigure.fig');
Vous pouvez inspecter la poignée h de la figure en appelant
get(h)
Ou approfondissez les axes/titres/légendes en appelant
ch=get(h,'Children');
Si vous utilisez le code dans mon exemple, vous ne devriez avoir qu'un seul enfant pour la figure, qui sera les axes. Appelez les enfants des axes et vous devriez avoir une ligne.
l=get(ch,'Children');
Ensuite, appelez les champs "Xdata" et "Ydata" de la ligne, et vous avez vos données d'origine.
x=get(l,'Xdata');
y=get(l,'Ydata');
Si vous avez une figure plus compliquée que de simples axes, elle devient un peu plus difficile. Vous devrez explorer chaque enfant pour déterminer s'il s'agit de l'intrigue à partir de laquelle vous souhaitez extraire des données.
Utilisez la commande HGLOAD. Référence disponible ici .