Extract data from fig file and redraw the plot

6 ビュー (過去 30 日間)
Venkatkumar Muneeswaran
Venkatkumar Muneeswaran 2023 年 6 月 26 日
コメント済み: Deep 2023 年 6 月 26 日
Hello
How to extract the data from the attached fig file into the workspace as variable and redraw the plot again.
Could anyone please help me resolve the issue?

採用された回答

Deep
Deep 2023 年 6 月 26 日
Hi, this will extract the data of the 4 lines from the .fig file and store them in XData and YData. The code should be self explanatory.
open('untitled.fig');
% Get the current figure and its children
f = gcf;
axes = f.Children;
% Initialize XData and YData as cell arrays
XData = {};
YData = {};
% Loop through the axes
for a = 1:length(axes)
ax = axes(a);
% Loop through the axes children
for i = 1:length(ax.Children)
% Check if the current child is a line object
if isa(ax.Children(i), 'matlab.graphics.chart.primitive.Line')
XData{end+1} = ax.Children(i).XData;
YData{end+1} = ax.Children(i).YData;
end
end
end
close(gcf);
disp(YData(1)); % Display the current values for the 1st line
  2 件のコメント
Venkatkumar Muneeswaran
Venkatkumar Muneeswaran 2023 年 6 月 26 日
編集済み: Venkatkumar Muneeswaran 2023 年 6 月 26 日
Hi @Deep, Thanks for the code .
I need to Plot XData(1), YData(1)
figure()
plot(XData(1),YData(1));
How to do this?
Deep
Deep 2023 年 6 月 26 日
You'll need to convert the cell to an ordinary array.
x = cell2mat(XData(1));
y = cell2mat(YData(1));
plot(x, y);
If the answer helps, please approve it :)

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by