文档详情

matlab入门经典教程ch.doc

发布:2018-01-22约1.6万字共25页下载文档
文本预览下载声明
M文件和面向对象编程 假如读者想灵活运用MATLAB去解决实际问题,想充分调动MATLAB——科学技术资源,想理解MATLAB版本升级所依仗的基础,那么本章内容将十分有用。 本章将涉及比较深层的MATLAB内容:脚本;函数(一般函数、内联函数、子函数、私用函数、方法函数);函数句柄的创建和使用;程序调试和剖析;数据结构(类、对象);重载和继承;面向对象编程。本章配备了许多精心设计的算例。这些算例是完整的,可直接演练的。读者通过这些算例,将真切感受到抽象概念的内涵、各指令间的协调,将从感知上领悟到面向对象编程的优越和至关要领。 本章新增了第7.7节,专门阐述函数句柄的创建和使用,它适用于MATLAB6.x版;而新增的第7.9.3节中关于程序性能优化的内容,则仅适用于MATLAB6.5以后版。 入门 【例7.1-1】通过M脚本文件,画出下列分段函数所表示的曲面。 (1) 图 7.1-1 [exm0701_1.m] %exm0701_1.m a=2;b=2; % 2 clf; x=-a:0.2:a;y=-b:0.2:b; for i=1:length(y) for j=1:length(x) if x(j)+y(i)1 z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2-1.5*x(j)); elseif x(j)+y(i)=-1 z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2+1.5*x(j)); else z(i,j)=0.7575*exp(-y(i)^2-6.*x(j)^2); end end end axis([-a,a,-b,b,min(min(z)),max(max(z))]); colormap(flipud(winter));surf(x,y,z); (2) exm0701_1 图 7.1-2 【例7.1-2】通过M函数文件画出上例分段函数的曲面。 exm0701_2(2,2) M文本编辑器 MATLAB控制流 for循环结构 【例7.3.1-1】一个简单的for循环示例。 for i=1:10; x(i)=i; end; x x = 1 2 3 4 5 6 7 8 9 10 while循环结构 【例7.3.2-1】Fibonacci数组的元素满足Fibonacci 规则: ,;且。现要求该数组中第一个大于10000的元素。 a(1)=1;a(2)=1;i=2; while a(i)=10000 a(i+1)=a(i-1)+a(i); i=i+1; end; i,a(i), i = 21 ans = 10946 if-else-end分支结构 【例7.3.3-1】一个简单的分支结构。 cost=10;number=12; if number8 sums=number*0.95*cost; end,sums sums = 114.0000 【例7.3.3-2】用for循环指令来寻求Fibonacc数组中第一个大于10000的元素。 n=100;a=ones(1,n); for i=3:n a(i)=a(i-1)+a(i-2); if a(i)=10000 a(i), break; end; end,i ans = 10946 i = 21 switch-case结构 【例7.3.4-1】学生的成绩管理,用来演示switch结构的应用。 clear; % for i=1:10;a{i}=89+i;b{i}=79+i;c{i}=69+i;d{i}=59+i;end;c=[d,c]; Name={ Jack,Marry,Peter, Rose, Tom}; Mark={72,83,56,94,100};Rank=cell(1,5); % S=struct(Name,Name,Marks,Mark,Rank,Rank); % for i=1:5 switch S(i).Marks case 100 S(i).Rank=满分; case a S(i).Rank= 优秀; case b S(i).Rank= 良好; case c S(i).Rank= 及
显示全部
相似文档