Effacer les filtres
Effacer les filtres

How to convert MATLAB plots to xls (Excel) sheets ?

4 vues (au cours des 30 derniers jours)
Adnan Hayat
Adnan Hayat le 21 Août 2020
Commenté : Adnan Hayat le 24 Août 2020
I have almost ten to fifteen MATLAB figures which I've got by running a MATLAB code. The code takes hours to plot a figure. My professor has now asked me to make .xls (Excel) sheets from the data associated with these figures. Although, I know how to do it and that is by using the "xlswrite" command, but, really ?, I have to run the code for hours again? Can anybody recoomend me an easy way using which I could get data files directly from the MATLAB figures ?

Réponse acceptée

Arthur Roué
Arthur Roué le 21 Août 2020
Modifié(e) : Arthur Roué le 21 Août 2020
You can access data of a plot with the line handle. For instance :
% Current figure handle (or use openfig if you saved the figure in a FIG-File)
hFigure = gcf;
% Find line handle
hLines = findobj(gcf, 'Type', 'Line')
% Here are your data
hLines.XData
hLines.YData
In this example, I assume you have only one line in each plot.
Since R2019a, prefer writetable, writematrix, or writecell instead of xlswrite
  11 commentaires
Arthur Roué
Arthur Roué le 24 Août 2020
Here you go
% Current figure handle (or use openfig if you saved the figure in a FIG-File)
hFigure = gcf;
% Find lines handles
vhLines = findobj(gcf, 'Type', 'Line');
% X data, I assume it's the same for all lines (otherwise use interp1)
vX = vhLines(1).XData;
% All Y data
mY = vertcat(vhLines.YData)';
% All names
cNames = {vhLines.DisplayName};
% Cell to export
cToExport = [
't [s]', cNames; % Headers
num2cell([vX', mY])];
% Write into file
xlswrite('YourWorkbook.xlsx', cToExport, 'YourSheetName')
Adnan Hayat
Adnan Hayat le 24 Août 2020
Dear Arthur, Thanks alot. It worked :)

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by