Saving figures into structure?
72 次查看(过去 30 天)
显示 更早的评论
Is it possible to save a figure into a structure? I'm trying to figure out how to save both data and figures into a single entity that I could then load in matlab. I know data can be saved in .mat and figures can be saved as .fig but is there not a way to save both in a single container?
2 个评论
Andreas Bernatzky
2020-6-7
Hey Jared,
look here:
data = rand(10,2);
myStruct.structFig = plot(data);
myStruct.structData = data;
should do the job
采纳的回答
Andreas Bernatzky
2020-6-7
Hey Jared,
data = rand(10,2);
myStruct.structFig = plot(data);
myStruct.structData = data;
m = figure(2);
% does not actually work
% % set(m,myStruct.structFig.XData,'XData');
you should have a look at the set() command. I haven't found a solution yet. Easiest would be just plot the data again but here you loose all of your preset defines like thickness and such things.
0 个评论
更多回答(2 个)
Mohammad Alhashash
2021-9-24
Yes you can by simply save the plotting command (plot, bar, ...) as a string, and then use eval command to excute it. However, keep in mind the the input arguments of the plotting command have to be stored as vectors in other fields in the same structure.
for example
% lets make a 2D plot of x and y values
s.x = [1, 2, 3];
s.y = [4, 5, 6];
s.figure = "plot(s.x, s.y)"
% to plot the figure later
eval(s.figure)
0 个评论
Ameer Hamza
2020-6-7
Once a figure is closed, the associated data will be deleted and cannot be directly recovered. The only workaround is to create a class handle class with a transient property, as shown in my answer here: https://www.mathworks.com/matlabcentral/answers/521538-how-can-i-save-a-3d-rendering-as-a-fig
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Specifying Target for Graphics Output 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!