from figure file to mat file?

43 views (last 30 days)
MementoMori on 6 Apr 2023
Commented: MementoMori on 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?

Answers (1)

Mathieu NOE
Mathieu NOE on 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;
MementoMori on 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)

Sign in to comment.


Find more on Graphics Object Identification in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!