如何将图形加载和卸载到 matlab 应用程序的轴中?

How can I load and unload figures into a matlab app's axis?

我目前有一个 .m 文件可以创建大量图形。它目前将这些数字输出到一个 powerpoint 中,每个数字一张幻灯片,但我更喜欢用户友好的东西。我想为此使用带有应用程序设计器的应用程序,但我无法弄清楚如何使图形出现在 GUI 中。

我的目标:在 GUI 的左侧有一个下拉菜单,让您选择图形标题,然后该图形将出现在 GUI 右侧的大轴中。

代码当前会在保存每个图形后将其关闭,但如果需要可以更改。

谁能帮我解决这个问题?这可能吗?

不是一个完整的答案,但有一些关于如何加载创建的 .fig 文件以及将轴复制到 uipanel 的指示。

首先创建一些图形:

f1 = figure();
subplot(211)
imagesc(rand(100));
subplot(212)
plot(rand(100,1))

saveas(f1, 'figure1.fig')

然后在您的 GUI 中加载此图。一个非常简单的示例 GUI:

fig = uifigure;
fig.Position = [100 100 800 600]
pan1 = uipanel(fig, 'Title', 'Figure', 'Position',[0 0 600 600])
pan2 = uipanel(fig, 'Title', 'Select Figure', 'Position',[600 0 200 600])

f_new = openfig('figure1.fig', 'invisible'); % load 'invisible' so it doesn't popup
ax_to_copy = f_new.Children;  % works even with subplots!

% and copy the loaded axes to the uipanel:
copyobj(ax_to_copy, pan1)

结果: