MATLAB编程与作图-2.ppt_第1页
MATLAB编程与作图-2.ppt_第2页
MATLAB编程与作图-2.ppt_第3页
MATLAB编程与作图-2.ppt_第4页
MATLAB编程与作图-2.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三讲 MATLAB编程与作图,第三讲 MATLAB编程与作图,3.1 程序设计 3.2 作图 3.3 在线帮助和文件管理,3.1 程序设计,循环语句 for 循环变量=初值:增量:终值, 语句;end while(条件式), 语句;end 分支语句 if(条件式), 语句; end if(条件式1), 语句1; elseif (条件式2), 语句 2; ;else, 语句;end switch(分支变量)case(值1), 语句1;case(值2), 语句2; ; otherwise 语句; end 其它:pause, break, return, error,3.1 程序设计,s=0; for n=1:100,s=s+1/n/n;end;s clear;s=0;n=1; while n=100, s=s+1/n/n; n=n+1; end; s 强行中断:Ctrl+C,3.1 程序设计,M脚本文件 在Editor窗口 例eg3_1 文件名一律以字母开头,以字母、数字或下划线组成,不要含有空格、减号等. M文件名一般都用小写字母 保存在当前目录(Current Directory),s=0; for n=1:100 s=s+1/n/n; end; s,保存为eg3_1.m,3.1 程序设计,M函数文件 function 输出变量=函数名(输入变量) 语句; M函数必须给予输入参数值 M函数在edit窗口编写, 在command窗口调用 M函数是以该函数的磁盘文件主名调用,而不是文件中的函数名称 M函数中变量为局部变量,%M函数eg3_1f.m function s=f(m) s=0; for n=1:m s=s+1/n/n; end,3.1 程序设计,函数句柄(handle) fname=eg3_1f; feval(fname,1000) Inline函数 fun=inline(expr, arg1, arg2, .) 匿名函数 fun=(arg1,arg2,.), fname=inline(sum(1./(1:m).2),m) fname = Inline function: fname(m) = sum(1./(1:m).2) feval(fname,1000) ans = 1.6439, k=2;fname=(m)sum(1./(1:m).k) fname = (m)sum(1./(1:m).k) feval(fname,1000) ans = 1.6439,3.1 程序设计,注释:%开头,对本行后面字符起作用,不参与运算。 对话:input,disp 全程变量与局部变量 nargin、nargout和varargin 子函数和嵌套函数 提高速度,3.1 程序设计,普通编程 function s=f(m) s=0; for n=1:m s=s+1/n/n; end,向量化编程 function s=f(m) n=1:m; s=sum(1./n.2);,尽量少用for语句,3.1 程序设计,例3.2 编一M函数,对任意输入的向量x, 可计算分段函数值构成的向量。 分量方式 eg3_2a,慢 向量方式 eg3_2b,eg3_2c快 数组预分配y=zeros(size(x),%M函数eg3_2a.m function y=eg3_2a(x) n=length(x); for k=1:n if x(k)1 y(k)=x(k)2; elseif x(k)-1 y(k)=1; else y(k)=3+2*x(k); end end,%M函数eg3_2b.m function y=eg3_2b(x) y=zeros(size(x); k1=find(x1);y(k1)=x(k1).2; k2=find(x-1,%M函数eg3_2c.m function y=eg3_2c(x) y=(x1).*x.2+(x-1,3.2 作图,曲线图 plot(x,y) 以数据(x(i), y(i)为节点的折线图, 其中x, y为同长度的向量 plot(x1,y1,x2,y2,.) 多组数据折线图 fplot(fun,a,b) 函数fun在区间a,b 上的函数图 plot3(x,y,z) 空间曲线图, 其中x, y, z为同长度的向量 图形导出到word 线型与标记 eg3_3 曲线图y=x3-x-1和y=|x|0.2sin(5x),3.2 作图,help plot 查看,3.2 作图,%M文件eg3_3.m fplot(inline(x3-x-1),-1,2); hold on; x=-1:0.2:2; y=abs(x).0.2.*sin(5*x); plot(x,y,:ro); hold off,3.2 作图,曲面图 x,y=meshgrid(xa,ya)当xa, ya分别为m维和n维行向量,得到x和y均为n行m列矩阵。meshgrid常用于生成X-Y平面上的网格数据。 mesh(x,y,z) 绘制网面图,是最基本的曲面图形命令, 其中x, y, z是同阶矩阵,表示曲面三维数据。 surf(x,y,z) 绘制曲面图,与mesh用法类似。 eg3_4 二元函数图 z = x exp(-x2-y2 ),3.2 作图,%M文件eg3_4.m clear;close; xa=-2:0.2:2;ya=xa; x,y=meshgrid(xa,ya); z=x.*exp(-x.2-y.2); mesh(x,y,z);pause surf(x,y,z);pause contour(x,y,z);pause contour(x,y,z,0.1 0.1);pause mesh(x,y,z),Meshgrid解释,xa=6:8;ya=1:4; x,y=meshgrid(xa,ya) %生成X-Y面上网格 z=x.2+y.2 %计算X-Y面上各网格点的z轴高度,x y z 6 7 8 1 1 1 37 50 65 6 7 8 2 2 2 40 53 68 6 7 8 3 3 3 45 58 73 6 7 8 4 4 4 52 65 80,3.2 作图,图形说明和定制 title 标题说明; xlabel,ylabel,zlabel 说明坐标轴x,y,z; hold on/hold off 保留/释放现有图形 axis(a,b,c,d) 确定坐标轴范围axb,cyd axis(a,b,c,d,e,f) 定制3维坐标轴范围 figureclose 开关一个新图形窗口 subplot(m,n,k) 将图形窗口分为m*n个子图,指向第k幅图 legend(str1,str2, .) 图例 eg3_5 空间曲线,3.2 作图,%M文件eg3_5.m clear;close; t=0:0.1:20;r=exp(-0.2*t);th=0.5*pi*t; x=r.*cos(th);y=r.*sin(th);z=sqrt(t); subplot(1,2,1) plot3(x,y,z); title(螺旋线);text(x(end),y(end),z(end),终点); xlabel(itX=erm-0.2ittrmcos(itpitrm/2); ylabel(Y轴);zlabel(Z轴); subplot(1,2,2); plot3(x,y,z); axis(-1 1 -1 1 0 4);grid on;,3.2 作图,3.2 作图,图形窗口菜单和工具栏 图形编辑,3.3 在线帮助和文件管理,在线帮助 help help 子目录名 help 命令或函数 lookfor 关键字 type M文件主名 which M文件主名,3.3 在线帮助和文件管理,文件和目录管理 MATLAB接受到一个命令的搜索过程 初学者在M文件的保存上常出现几种错误 设置你自己的工作目录 (Current directory) 设置MATLAB默认搜索路径(Path)队列,习题,1、求满足 的最小m值。,2、用循环语句形成Fibonacci数列F1=F2=1,Fk=Fk-1+Fk-2, k=3,4, 并验证极限,提示:计算至两边误差小于精度10-8,习题,3、假定某天的气温变化记录如下表,试作图描述这一天的气温变

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论