加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

MATLAB应用实例集锦

(2011-07-27 18:58:55)
标签:

matlab应用实例

matlab应用

matlab集锦

it

分类: MATLAB学习笔记

通用的完整的坐标系的建立实例

>>t=0:0.1:4*pi;

>> x=sin(t);

>> y=cos(t);

>> plotyy(t,x,t,3*y);

>> title('双纵坐标函数的使用');

>> xlabel('横坐标一致');

>> ylabel('纵坐标不一致');

>> legend('cos(t)','3*sin(t)');

坐标图形的分割

>> t=0:0.1:4*pi;

>> y=sin(t);

>> x=cos(t);

>> y1=tan(t);

>> x1=cot(t);

>> subplot(2,2,1); //将窗口分割为2*24个小窗口的界面,且激活1号窗口

>> plot(t,y,'r-'); //1号窗口绘图

>> title('图形一');

>> xlabel('T');

>> ylabel('Y');

>> axis square; 产生正方形坐标系

>> grid on;

>> subplot(2,2,2); //将窗口分割为2*24个小窗口的界面,且激活2号窗口

>> plot(t,y1,'b*');

>> title('图形二');

>> xlabel('T');

>> ylabel('Y');

>> axis equal;

>> subplot(2,2,3);

>>  plot(t,x1,'b*');

>>  xlabel('T');

>> ylabel('Y');

>> grid on;

>> axis off;

>> subplot(2,2,4);

>> axis on;

>> plot(t,x,'b*');

>> plot(t,x1,'b*');

>>  xlabel('T');

>>  ylabel('Y');

>> grid on;

 

统计图形的应用实例

>> t=linspace(0,1,10);

>> subplot(2,2,1);

>> bar(t);

>>  xlabel('T');

>> ylabel('Y');

>> title('条形图');

>> subplot(2,2,2);

>> stairs(t);

>> xlabel('T');

>> ylabel('Y');

>> title('阶梯图');

>>  subplot(2,2,3);

>> t

t =

         0    0.1111    0.2222    0.3333    0.4444    0.5556    0.6667    0.7778    0.8889    1.0000

>> stem(t);

>>  subplot(2,2,4);

>> r=0:0.1:4*pi;

>> y=sin(r);

>> fill(r,y,'g');

>>  xlabel('r');

>>  ylabel('Y');

>> title('填充图');

 

 

注意区别两者的差别

>> t=linspace(0,10,5);

>> t

t =

         0    2.5000    5.0000    7.5000   10.0000

t1 =

     0

>> t1=0:1:5

t1 =

     0     1     2     3     4     5

投影函数的应用实例:

>> [x,y]=meshgrid(-8:0.5:8);

>> z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);

>> subplot(2,2,1);

>> meshc(x,y,z);  ////mesh绘图的基础上还在xy平面上绘制z轴方向的等高线

>> subplot(2,2,2);

>> meshz(x,y,z);////// mesh绘图的基础上绘出在xy平面上的底座

>> subplot(2,2,3);

>> surfc(x,y,z);//////具有等高线的曲面函数

>> subplot(2,2,4);

>> surfl(x,y,z);//////具有光照效果的曲面函数

 


 

正弦曲面的绘制:

>> t=0:0.1:4*pi;

>> d=sin(t);

>> [x,y,z]=cylinder(d,50);

>> surf(x,y,z);

 


 

三维图形表面的着色

Shading faceted; //////此命令将每个网格片涂上颜色,但网格线保留,线的颜色仍是黑色

shading flat;/////此命令将每一个网格片用一个颜色进行着色,且网格线也使用相同颜色

shading interp;/////此命令在网格片内采用颜色差值处理,得出的表面最为光滑

colormap(m); ///m代表色图矩阵

函数名

含义

函数名

含义

autumn

红、黄浓淡色

Cool

青品红浓淡色

Bone

蓝色调浓淡色

copper

纯铜色调线性浓淡色

pink

淡粉红色图

White

全白色

Hsv

两端为红的饱和值色

Summer

绿黄浓淡色

Jet

蓝头红尾饱和色值

Copper

纯铜色调线性浓淡色

Colorcube

三浓淡多色彩交错

Flag

----交错

三维图形表面的着色应用实例:

>> z=peaks(20);

>> colormap(copper);///图形窗口色图的设置和改变,进行全局的设定

>> subplot(1,3,1);

>> surf(z);

>> subplot(1,3,2);

>> surf(z);

> >shading flat;//此命令将每一个网格片用一个颜色进行着色,且网格线也使用相同颜色

>> subplot(1,3,3);

>> surf(z);

>> shading interp;/////此命令在网格片内采用颜色差值处理,得出的表面最为光滑

 


 

colormap(colorcube);////添加此句后的效果

 

对象属性的操作实例:

应用实例:

>> x=0:pi/50:10;

>> y=sin(x);

>> z=cos(x);

>> plot(x,y);

>> hold on;

>> h1=plot(x,y);  %h1即为曲线想,xy的句柄值

>> hold on;

>> set(h1,'color','r','marker','*');%设置h1的属性值

>> h2=plot(x,z);

>> set(h2,'color','b','linestyle',':');

>> h3=get(h2,'color') %获取'color'属性的属性值

h3 =

     0     0     1      ///即是为h2的颜色属性值为[0 0 1],也即’b’蓝色

 


 

图形对象的创建:

建立图形窗口对象使用figure()函数,其调用格式为:

         句柄变量=figure(属性名1,属性值1,属性名2,属性值2,、、、、);

坐标轴对象

建立坐标轴对象使用axes函数,其调用格式如下:

                   句柄变量=axes(属性名1,属性值1,属性名2,属性值2,、、、、、);

曲线对象

坐标系中,建立曲线对象使用line函数,格式如下:

   句柄变量=Linexyz,属性名1,属性值1,属性名2,属性值2,属性名3,属性值3,);

注解:其中xyz的含义与高层曲线函数plotplot3 一样,

完整的图形窗口的建立实例:

>>  t=0:pi/100:pi/2;

>>  y1=sin(2*pi*t);

>> y2=sqrt(3)/2*exp(-4*t).*sin(4*sqrt(3)*t+pi/3);

>> figh=figure('menubar','none','name','yangfan','resize','off','color','y','pointer','watch');

///建立显示曲线或图形的窗口(名为yangfan,不可调整大小,底层颜色为黄色)

>> title('建立一个完整的坐标系');///为坐标系的命名

>> axes('gridlinestyle',':','box','on','xlim',[0,pi/2],'ylim',[-1,1]); ///设置坐标轴的属性

>> xlabel('X坐标轴的属性'); ///设置X坐标轴的名称

>> ylabel('Y坐标轴的属性'); ///设置Y坐标轴的名称

>> line('xdata',t,'ydata',y1,'linewidth',1,'linestyle','-.','color','g'); 设置曲线以1 的属性

>> grid on;

>> text(0.5,0.5,'文字对象','color','g');%为曲线添加文字说明

>>line('xdata',t,'ydata',y2,'linewidth',2,'linestyle','-.','color','r');

>>text(0.5,1,'文字对象','color','r');

 

图像显示

>> [x,cmap]=imread('g:\rf.jpg');

>>  image(x);

>>  colormap(cmap);

>>  axis image off;

>> imwrite(x,'f:\12','jpg');

 


 

1、影片动画制作

MATLAB提供了getframemovieinmovie

Getframe函数可以截取每一幅画面信息而构成一个很大的列向量,该向量可以保存在一个变量中;

Movieinn)函数用来建立足够大的n列矩阵,该矩阵用来保存n幅画面的数据,以备播放;

Moviemn)函数播放由矩阵m所定义的画面n次,默认时播放1次;

动画制作实例:

>> t=0:0.1:4*pi;

>> d=sin(t);

>> [x,y,z]=cylinder(d,50);

>> m=moviein(20);

>> for c=1:20

   surf(c*x,c*y,c*z);

   m(:,c)=getframe;

   end

>> movie(m,10);

 

2、实时动画制作:

基本实时动画制作的方法:先画出出示图形,在计算活动对象的新位置,并在新位置将它显示出来,最后擦出原位置上的对象,刷新屏幕;重复操作即可实现动画效果;

利用erasermode属性可以实现显示新对象,擦出旧对象,而又不破坏背景图案,通过erasermode属性可以实现3种重要的擦出方式:

Anone:在图形对象变化时,直接在原来的基础上绘制,不破坏原图像;

Bbackground:在图形对象被擦出后,将原来图形的颜色设置为背景颜色,实现擦出;这种擦出将原有的对象完全擦出,包裹该对象下面的所有对象;

Cxor:对象的擦出与绘制由该对象的异或而定,只绘制于屏幕颜色不一致的新对象点,这种模式只擦出与屏幕颜色不一致的原对象点,而不损坏被擦出对象下面的其他对象;

当新对象属性设置后,应该及时刷新屏幕,从而使新对象显示出来,这些操作依靠命令:drawnow:此命令迫使matlab暂停目前的任务而去刷新屏幕,若没有此命令则在执行完任务后才刷新屏幕

曲线的交替显示时时动画的制作:

>>  t=0:0.1:4*pi;

>> y=sin(t);

>>  z=cos(t);

>>  for i=0: 5000

 drawnow

   if  mod (i ,2)==0

   h1=plot(t,y,'r');

pause(0.5);

  else

   h1=plot(t,z,'b');

pause(0.5);

set(h1,'erasemode','xor');

end

end

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有