1、《计算机仿真及应用》实验教案 实验五 M文件和函数句柄 一、实验目的 1、掌握M文件的编写方法。 2、熟练掌握MATLAB的五种程序控制流结构。 3、掌握M函数文件的一般结构。 4、了解函数句柄的创建、观察及基本使用方法。 二、实验主要仪器与设备 装配有MATLAB7.6软件的计算机 三、预习要求 做实验前必须认真复习第六章M文件和函数句柄。 四、实验内容及实验步骤 1、已知函数,编写能对任意一组输入x值求相应y值的程序, 并验证运行结果。 (1)编写M函数文件 function y=exm060101(x) % y=exm060101(x) Fun
2、ction 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 =
3、 -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=
4、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
5、 r='优秀'; case b r='良好'; case c r='及格'; otherwise r='不及格'; end A(3,k)={r}; end A 运行结果: A = 'Jack' 'Marry' 'Peter' 'Rose' 'Tom' [ 72] [ 83]
6、 [ 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
7、 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
8、1/5 1/6 1/7 1/8 1/9 4、编写计算,其中,是预先 给定的控制精度。使用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;
9、 (2)把文件exm060104.m保存在处于MATLAB搜索路径的文件夹中。 (3)运行以下指令(控制精度假设取0.0001) [S,N]=exm060104(0.0001) 运行结果: S = 1.9859 N = 141 五、实验报告与思考题 说明M函数文件的一般结构。 (1)函数申明行(function declaration line):位于函数文件的首行;以MATLAB 关键字function开头;函数名以及函数的输入/输出量名都在这一
10、行被定义. (2)H1行(the first help text line):紧随函数申明行之后以%开头的第一注释行; 按MATLAB自身文件的规则,H1行包含大写体的函数文件名和运用关键词 简要描述的函数功能。该H1行提供lookfor关键词查询和help在线帮助使用。 (3) 在线帮助文本(help text)区:H1行及其之后的连续的一%开头的所有注释 行构成整个在线帮助文本。它通常包括:函数输入/输出宗量的含义;调用 格式说明。 (4) 编写和修改记录:起几何位置与在线帮助文本区相隔一个空行(不用%符开 头)。该区域文本内容也都以%开头;标志编写及修改改M文件的作者和日 期、版本记录。它用作软件档案管理。 (5) 函数体(function body):为清晰起见,与前面的注释一空行相隔。这部分 内容由实现该M函数文件功能的MATLAB指令组成。它接受输入量,进行 程序流控制,创建输出量。其中为阅读、理解方便,也配置适当的空行和注释。 (6)若仅从运算角度看,唯“函数申明行”和“函数体”两部分是构成M函数文件 所必不可少的。 第 4 页 共 4 页






