필터 지우기
필터 지우기

from figure file to mat file?

조회 수: 50 (최근 30일)
MementoMori
MementoMori 2023년 4월 6일
댓글: MementoMori 2023년 4월 12일
Hi, I have saved a fig file and now I want to do some operation on it. I have tried
example=load("name.fig",'-mat');
but it doesn't give me a mat file.
Do you know how to convert?

답변 (1개)

Mathieu NOE
Mathieu NOE 2023년 4월 6일
hello
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
end
close(fig); % close the figure
data.names = ['X';legend_name];
data.Y = Ymat;
end
  댓글 수: 4
Walter Roberson
Walter Roberson 2023년 4월 12일
for i=1:length(dataObjs)
if isprop(dataObjs(i), 'DisplayName')
legend_name{i,1} = dataObjs(i).DisplayName;
else
legend_name{i,1} = sprintf('%s: #%d', classname(dataObjs(i)), i);
end
yval = dataObjs(i).YData;
Ymat = [Ymat yval(:)]; % Keep appending column vectors
end
MementoMori
MementoMori 2023년 4월 12일
@Walter Roberson thank you. It gives me this error by the way
Undefined function 'classname' for input arguments of type 'matlab.graphics.primitive.Image'.
Error in extract_data_from_figures (line 22)
legend_name{i,1} = sprintf('%s: #%d', classname(dataObjs(i)), i);
Error in NuovaDisposizione (line 295)
data=extract_data_from_figures(filename);

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Graphics Object Identification에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by