如何将图形加载和卸载到 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)
结果:
我目前有一个 .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)
结果: