from figure file to mat file?

40 visualizzazioni (ultimi 30 giorni)
MementoMori il 6 Apr 2023
Commentato: MementoMori il 12 Apr 2023
Hi, I have saved a fig file and now I want to do some operation on it. I have tried
but it doesn't give me a mat file.
Do you know how to convert?

Risposte (1)

Mathieu NOE
Mathieu NOE il 6 Apr 2023
you can use that function to extract data from figures
function data = extract_data_from_figures(filename)
% Input : File name <filename.fig>
% with multiple plots in a single file
% Output : struct data
% : data.names contains names of the display object Yvalues
% : data.Y contains the actual plot values withthe first column
% containing the x-values
% Written by Chetanya Puri, 2019
% Last Modified: Nov 6, 2019
fig = openfig(filename); % Open figure and assign it to fig object
dataObjs = findobj(fig,'-property','YData'); % Find all graphic objects with YData, in our case line values
xval = dataObjs(1).XData; % Find the X-axis value
Ymat = [xval(:)]; % Create a matrix with first column of x values
for i=1:length(dataObjs)
legend_name{i,1} = dataObjs(i).DisplayName;
yval = dataObjs(i).YData;
Ymat = [Ymat yval(:)]; % Keep appending column vectors
close(fig); % close the figure
data.names = ['X';legend_name];
data.Y = Ymat;
  4 Commenti
MementoMori il 12 Apr 2023
@Walter Roberson thank you. It gives me this error by the way
Undefined function 'classname' for input arguments of type ''.
Error in extract_data_from_figures (line 22)
legend_name{i,1} = sprintf('%s: #%d', classname(dataObjs(i)), i);
Error in NuovaDisposizione (line 295)

Accedi per commentare.


Scopri di più su Graphics Object Identification in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by