MATLAB札记

2012年07月09日

常用函数列表

prod     连乘
hist     统计分布
bar      柱状图

Tips

  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.csdn.net/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一下。

  3. 多项式化简

     syms x
     y=(3*x)^2-(x+2)*(x-1);
     simplify(y)
    
  4. 计算符号表达式

     R = subs(S)
     R = subs(S, new)
     R = subs(S, old, new)
    
  5. figure画出来,提取数据有很多好处,方便保存,计算,加工,还可以导入到origin里面画图。

    具体的方法就是两部。 第一,找到需要保存的fig对象,命令如下:

     h=findobj(gca,'Type','Line');
    

    这里gca代表当前图,line代表图中的线,同样你也可以取坐标轴等等。 第二,提取线中的x,y

     x=get(h,'XData');
     y=get(h,'YData');
    

    到此,就完成了,当然,我们还可以保存起来,用save命令很方便,具体可以查看

     help save
    
  6. displays a text string in the current figure window after you select a location with the mouse.

     gtext('string')
    
  7. 把数字转换成字符串的数据格式

    如果要把数字3转换成字符串003,前面自动补0,num2str(3,'%03d')即可。

  8. 关闭图像窗口,用close(窗口句柄)即可