将matlab图存储在变量中并重用它

en1*_*en1 5 matlab user-interface plot figure

我编写了一个GUI应用程序,在对大型数据集执行某些分析之后,它提供了对数据进行多种绘图选项的可能性(通过弹出菜单).

因此,现在每个绘图都是在弹出菜单中选中时动态计算的.这不是有效且耗时的,所以我想只计算一次所有这些图,然后以某种方式将它们存储在变量中并且能够将它们中的每一个分配给gui轴的句柄.

基本上我想要一个存储在变量中的类型h = plot([1 2 3])的图(没有可视化),并且能够在以后按需可视化它.我尝试将轴手柄分配给绘图手柄,例如

h=plot([1 2 3]);
handles.plottingscreen_axe=h; 
Run Code Online (Sandbox Code Playgroud)

......但它没有任何形象.为了简化问题,我一直在尝试使用终端上的测试数据来简单地将一个数字句柄分配给另一个,以便以某种方式将可视化转储到另一个数字,但没有任何工作,例如

h=plot([1 2 3]);
f=figure;
f=h;
Run Code Online (Sandbox Code Playgroud)

......但是我无法将h的图形可视化为f.

显然我对图形手柄没有经验,所以我想这对某些人来说很简单.我无法找到任何有关它的相关文档,每个人都建议简单地创建一个重新创建所有内容的函数,但这正是我想要避免的.

任何帮助表示赞赏,如果我的问题是关于太基本的问题我会道歉.

Aer*_*ngy 4

figure;
ah = axes;
hold(ah,'on');  
%Axes must have hold on or lh(1) will become invalid after lh(2) is created
lh(1) = plot(ah,[1 2 3],[1 2 3],'r','visible','off');
lh(2) = plot(ah,[1 2 3],[3 2 1],'b','visible','off');
Run Code Online (Sandbox Code Playgroud)

这将开启 1 号线(红色)

set(lh(1),'visible','on');set(lh(2),'visible','off')
Run Code Online (Sandbox Code Playgroud)

这将开启 2 号线(蓝色)

set(lh(1),'visible','off');set(lh(2),'visible','on')
Run Code Online (Sandbox Code Playgroud)

在 GUI 中,您将需要某种回调来循环所有线路句柄的可见开/关状态。注意:如果这些数据集非常大并且有很多行,那么它可能会占用大量内存。