- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
matlab入门经典教程ch
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= 及
文档评论(0)