我想将我在MATLAB中绘制的图保存到fig
文件中。目前我使用下面的代码:在子图中保存条形图
hf1 = figure();
p1=uipanel('Parent',hf1);
a1=subplot(2,1,1,'Parent',p1);
%b1=plot(a1,1:9);
b1=bar(a1,1:9);
a2=subplot(2,1,2,'Parent',p1);
b2=bar(a2,1:9);
%b2=plot(a2,1:9);
hf2 = figure('Visible', 'on');
hAxes = copyobj(findobj(p1,'Type','Axes'), hf2);
saveas(hf2,'case2.fig','fig');
但后来我得到以下错误:
??? Error using ==> getProxyValueFromHandle at 15 Input must be a valid handle.
Error in ==> plotedit at 91 [varargout{1:nargout}] = feval(args{:});
Error in ==> specgraph.barseries.preserialize at 10 peerVals = plotedit({'getProxyValueFromHandle',hPeers});
Error in ==> hgsaveStructDbl at 81 olddata{i} = {hh,preserialize(hh)};
Error in ==> hgsave at 63 hgS = hgsaveStructDbl(h, SaveAll);
Error in ==> saveasfig at 7 hgsave(h, name);
Error in ==> saveas at 126 feval(['saveas' format], h, name)
Error in ==> testbar at 11 saveas(hf2,'case2.fig','fig');
但是,当我与代码中plot
更换bar
(我现在评论出来^^ ),那么我可以成功保存这个图。
我使用的版本是MATLAB R2010a。
你真的需要先复制数字到一个新的?你为什么不用'saveas(hf1,'case2.fig','fig');'在这里工作! – 2012-08-17 08:33:40
很奇怪。也许您应该使用MathWorks提交支持凭单。或者先尝试升级到最新版本。 – bdecaf 2012-08-17 08:58:56
Mathworks错误报告[here](http://www.mathworks.com/support/bugreports/469597) – Doresoom 2013-07-09 15:18:50