1、保存matlab中单个axes的方法
[f,p]=uiputfile({'*.jpg'},'保存文件');%获取保存文件的位置
str=strcat(p,f);%将路径和文件名合并
pix=getframe(handles.axes1);%获取图像数据
imwrite(pix.cdata,str,'jpg')%写入数据
注意:此方法无法保存坐标轴、标注等,以下网址提供了更复杂的方法,但我没有试验过
http://www.matlabsky.com/thread-5227-1-1.html通过将axes对象复制到新figure再保存
http://blog.youkuaiyun.com/langyuewu/archive/2009/05/02/4144044.aspx此网址给的方法好像不大行,可能是我没看懂
2、实时更新的问题
有下面一种情况,界面长时间不更新,直至中间的程序执行结束,前一条set语句是没有办法看到的(除非在调试的情况下)。
set(handles.lblStatus,'String','Processing...')
%functionthat takes alongtime
set(handles.lblStatus,'String','Done')
解决办法:
有人说如果GUI名字若为xxxx,则在恰当的地方用xxxx('Refresh')就可以更新,也有的说用refresh(handles)函数,实验发现,前一种方法可以更新,但是同时会打开另一个GUI,而后一个仅适用于对图形对象的更新。
正确的解决办法是用drawnow命令,后面跟的参数可以help matlab一下。