我不知道如何在 MATLAB 中完成以下操作。我有一个看起来像这样的图:
在图中,我有一个带有许多子图的面板和一个允许我查看面板的一部分的滚动条。
我想将面板的全部内容保存到 PNG 图像文件(不仅仅是可见部分),即我想要一个高矩形文件,并且不需要滚动。
生成图的代码如下:
function draw(obj)
figure;
panel1 = uipanel('Parent',1);
panel2 = uipanel('Parent',panel1);
panelheight = obj.nIterations / 2;
set(panel1,'Position',[0 0 0.97 1]);
set(panel2,'Position',[0 1-panelheight 1 panelheight]); %%
nPlot = 1;
for i=1:obj.nIterations
models = obj.iterations{i};
for nModel=1:length(models)
subplot(obj.nIterations,length(models)*2,nPlot);
nPlot = nPlot + 1;
drawTransitions(models{nModel});
set(gca,'Parent',panel2);
subplot(obj.nIterations,length(models)*2,nPlot);
nPlot = nPlot + 1;
drawRewards(models{nModel});
set(gca,'Parent',panel2);
end
end
s = uicontrol('Style','Slider','Parent',1,...
'Units','normalized','Position',[0.97 0 0.03 1],...
'Value',1,'Callback',{@slider_callback1,panel2,panelheight});
end
我尝试了以下方法,但没有成功。
- 该
saveas
功能可以保存整个图形,而不仅仅是面板。此外,它会剪辑面板的不可见部分。 export_fig(panel2.'file.png')
只给出一个纯灰色图像。