实验五 M 文件和函数句柄
一、实验目的
1、掌握M 文件的编写方法。
2、熟练掌握MATLAB 的五种程序控制流结构。
3、掌握M 函数文件的一般结构。
4、了解函数句柄的创建、观察及基本使用方法。
二、实验主要仪器与设备
装配有MA TLAB7.6软件的计算机
三、预习要求
做实验前必须认真复习第六章M 文件和函数句柄。
四、实验内容及实验步骤
1、已知函数⎪⎩
⎪⎨⎧≤<≤--<=+-x e x x
x x
y x 11111
3
,编写能对任意一组输入x 值求相应y 值的程序,
并验证运行结果。
(1)编写M 函数文件 function y=exm060101(x)
% y=exm060101(x) Function calculate of example n=length(x); for k=1:n if x(k)<-1 y(k)=x(k); elseif x(k)>=1 y(k)=exp(1-x(k)); else
y(k)=x(k)^3; end
end
(2)把文件exm060101.m 放置在搜索路径上 (3)运行以下指令
x=[-2,-1,-1.2,-0.4,0.8,1,6] y=exm060101(x) 运行结果: x =
-2.0000 -1.2000 -0.4000 0.8000 1.0000 6.0000
y =
-2.0000 -1.2000 -0.0640 0.5120 1.0000 0.0067
2、已知学生的名字和百分制分数。
要求根据学生的百分制分数,分别采用“满分”、“优秀”、“良好”、“及格”、“不及格”等表示学生的学习成绩。
试用switch结构编程实现。
clear;
%定义分数段:满分(100),优秀(90-99),良好(80-89),及格(60-79),不及格(<60)。
for k=1:10
a(k)={89+k};b(k)={79+k};c(k)={69+k};d(k)={59+k};
end;
c=[d,c]; %输入学生的名字和分数
A= cell(3,5) ;
A(1,:)={'Jack','Marry','Peter','Rose','Tom'};
A(2,:)={72,83,56,94,100};
for k=1:5
switch A{2,k}
case 100
r='满分';
case a
r='优秀';
case b
r='良好';
case c
r='及格';
otherwise
r='不及格';
end
A(3,k)={r};
end
A
运行结果:
A =
'Jack' 'Marry' 'Peter' 'Rose' 'Tom'
[ 72] [ 83] [ 56] [ 94] [ 100]
'及格' '良好' '不及格' '优秀' '满分'
3、试用for 循环结构创建Hilbert 矩阵。
K=5;
A = zeros(k,k); for m = 1:K
for n = 1:K
A(m,n)=1/(m+n-1) ;
end end format rat A
format short g 运行结果: A =
1 1/
2 1/
3 1/
4 1/
5 1/2 1/3 1/4 1/5 1/
6 1/3 1/4 1/5 1/6 1/
7 1/4 1/5 1/6 1/7 1/
8 1/5 1/6 1/7 1/8 1/9
4、编写计算∑∑===N
n n k k S 111,其中⎪⎪⎭
⎪
⎪⎬⎫
≤⎪⎪⎩⎪⎪⎨⎧=∑=ε
N k k N 1
1
min arg ,ε是预先 给定的控制精度。
使用while 循环结构编程实现。
(1)编写M 函数文件exm060104(x)
function [S,N]=exm060104(epsilon) k=0; s=0; d=inf; S=0;
while d>epsilon
k=k+1;
s=s+k; d=1/s;
S=S+d;
end N=k;
(2)把文件exm060104.m保存在处于MATLAB搜索路径的文件夹中。
(3)运行以下指令(控制精度假设取0.0001)
[S,N]=exm060104(0.0001)
运行结果:
S =
1.9859
N =
141
五、实验报告与思考题
说明M函数文件的一般结构。
(1)函数申明行(function declaration line):位于函数文件的首行;以MATLAB
关键字function开头;函数名以及函数的输入/输出量名都在这一行被定义.
(2)H1行(the first help text line):紧随函数申明行之后以%开头的第一注释行;
按MA TLAB自身文件的规则,H1行包含大写体的函数文件名和运用关键词
简要描述的函数功能。
该H1行提供lookfor关键词查询和help在线帮助使用。
(3) 在线帮助文本(help text)区:H1行及其之后的连续的一%开头的所有注释
行构成整个在线帮助文本。
它通常包括:函数输入/输出宗量的含义;调用
格式说明。
(4) 编写和修改记录:起几何位置与在线帮助文本区相隔一个空行(不用%符开
头)。
该区域文本内容也都以%开头;标志编写及修改改M文件的作者和日
期、版本记录。
它用作软件档案管理。
(5) 函数体(function body):为清晰起见,与前面的注释一空行相隔。
这部分
内容由实现该M函数文件功能的MA TLAB指令组成。
它接受输入量,进行
程序流控制,创建输出量。
其中为阅读、理解方便,也配置适当的空行和注释。
(6)若仅从运算角度看,唯“函数申明行”和“函数体”两部分是构成M函数文件
所必不可少的。