【发布时间】:2012-07-10 04:29:59
【问题描述】:
我想将我在 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');
然后我收到以下错误:
???在 15 处使用 ==> getProxyValueFromHandle 时出错 输入必须是有效的句柄。
==> 91 处的 plotedit 中的错误 [varargout{1:nargout}] = feval(args{:});
==> specgraph.barseries.preserialize 在 10 时出错 peerVals = plotedit({'getProxyValueFromHandle',hPeers});
==> hgsaveStructDbl 中的错误在 81 olddata{i} = {hh,preserialize(hh)};
==> hgsave 中的错误在 63 hgS = hgsaveStructDbl(h, SaveAll);
==> saveasfig 中的错误在 7 hgsave(h, 名字);
==> 中的错误另存为 126 feval( ['saveas' 格式], h, name )
==> 11 处的测试栏出错 saveas(hf2,'case2.fig','fig');
但是当我将代码中的bar替换为plot时(我现在将它们注释掉了^^),然后我可以成功保存数字。
我使用的版本是 MATLAB R2010a。
【问题讨论】:
-
你真的需要先把图复制到一个新的吗?你为什么不直接使用
saveas(hf1,'case2.fig','fig');在这里工作! -
很奇怪。也许您应该向 MathWorks 提交支持请求。或者先尝试升级到最新版本。
-
Mathworks 错误报告here