当前位置:文档之家› 【良心出品】MATLAB实验五《 M文件和函数句柄》

【良心出品】MATLAB实验五《 M文件和函数句柄》

【良心出品】MATLAB实验五《 M文件和函数句柄》
【良心出品】MATLAB实验五《 M文件和函数句柄》

实验五 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函数文件

所必不可少的。

实验4函数文件

实验四 函数文件 1.定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。 函数文件: function [e,ln,s,c]=plural(x) e=exp(x); ln=log(x); s=sin(x); c=cos(x); End 命令文件: x=input('请输入一个复数:'); [e,ln,s,c]=plural(x); e ln s c 运行结果: 请输入一个复数:3+4i e = -13.1288 -15.2008i ln = 1.6094 + 0.9273i s = 3.8537 -27.0168i c = -27.0349 - 3.8512i 2.一物理系统可用下列方程组来表示: ? ?????????????=??????????????????????????----g g m m N N a a m m m m 2121212111001cos 000sin 00cos 0sin 0sin cos θθ θθ θθ 从键盘输入m 1、m 2和θ的值,求N a a 121、、和N 2的值。其中g 取9.8,输入 θ时以角度为单位。 函数文件: function [a1,a2,N1,N2]=physis(m1,m2,t) g=9.8; A=[m1*cos(t*pi/180),-m1,-sin(t*pi/180),0;... m1*sin(t*pi/180),0,cos(t*pi/180),0;... 0,m2,-sin(t*pi/180),0;... 0,0,-cos(t*pi/180),1]; B=[0;m1*g;0;m2*g];

matlab实验报告

数学实验报告 班级: 学号: 姓名: 实验序号:1 日期:年 月 日 实验名称:特殊函数与图形 ◆ 问题背景描述:绘图是数学中的一种重要手段,借助图形,可以使抽象的对象得到 明白直观的体现,如函数的性质等。同时,借助直观的图形,使初学者更容易接受新知识,激发学习兴趣。 ◆ 实验目的:本实验通过绘制一些特殊函数的图形,一方面展示这些函数的特点属性, 另一方面,就 Matlab 强大的作图功能作一个简单介绍。 实验原理与数学模型: 1、 球2222x y z R ++= ,x=Rsin φcos θ, y= Rsin φsin θ, z= cos φ, 0≤θ≤2π , 0≤φ≤π 环面 222222222()4(),(cos )cos ,x y z a r a x y x a r φθ+++-=+=- (cos )sin ,sin ,02,02y a r z r φθφφπθπ=-=≤≤≤≤ 2、 平面摆线:2 22 31150,(sin ),(1cos ),0233 x y x a t t y a t t π+-==-=-≤≤ 3、 空间螺线:(圆柱螺线)x=acost , y=asint , z=bt ;(圆锥螺线)22 cos ,sin ,x t t y t t z t === 4、 椭球面sin cos ,sin sin ,cos ,02,0x a y b z c φθφθφθπφπ===≤<≤≤ 双叶双曲面3 tan cos ,tan sin ,sec ,02,22 x a y b z c π φθφθφθπφπ===≤<- << 双曲抛物面2 sec ,tan 2 u x au y bu z θθ=== 实验所用软件及版本:mathematica(3.0) 主要内容(要点): 1、 作出下列三维图形(球、环面) 2、 作出下列的墨西哥帽子 3、 作出球面、椭球面、双叶双曲面,单叶双曲面的图形 4、 试画出田螺上的一根螺线 5、 作出如图的马鞍面

实验五 M文件和MATLAB程序设计

实验五 M文件和MATLAB程序设计 一、实验目的 matlab作为一种高级计算机语言,不仅可以命令行方式完成操作,也具有数据结构、控制流、输入输出等能力,本次实验通过熟悉和掌握m文件的建立与使用方法,以及函数与控制程序流程语句的使用,使学生具备一定的编程和程序调试能力。 1.掌握M文件的使用方法。 2.掌握if语句和switch语句的使用 3. 掌握循环语句的使用 4. 通过练习理解MATLAB编程方法。 二、实验原理 1.m文件 用matlab语言编写的程序,称为m文件。M文件根据调用方式的不同分为两类,命令文件(Script file)和函数文件(Function file)。区别? 2.程序控制结构 1)顺序结构 2)选择结构 (1)if语句a) 单分支if语句b) 双分支if语句c) 多分支if语句 (2)switch 语句 (3)try语句 3)循环结构 (1)for 语句 (2)while语句 (3)break语句、continue语句、return使用,区别? 3.函数文件 function 输出形参表=函数名(输入形参表) 注释说明部分 函数体语句 三、实验要求 1.首先上机练习PPT中各种流程控制语句的有关实例。 2.然后上机练习下面的实验习题。 四、实验习题 1.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如: 2→1 3→10→5→16→8→4→2→1

6→3→10→5→16→8→4→2→1 运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。 %classic "3n+1" problem from number theory. while 1 n=input('Enter n,negative quits:'); if n<=0 break end a=n; while n>1 if rem(n,2)==0 n=n/2; else n=3*n+1; end a=[a,n]; end a end Enter n,negative quits:3 a = 3 10 5 16 8 4 2 1 2. 编程求满足∑=>m i i 1100002的最小m 值。 a=0; i=1; while (a<10000) a=a+pow2(i); i=i+1; end m=i-1; m 13 3. 编写一个函数,计算下面函数的值,给出x 的值,调用该函数后,返回y 的值。 function [y]=myfun1(x) ?? ???>+-≤<≤=3,630, 0,sin )(x x x x x x x y 选择一些数据测试你编写的函数。 function y=myfun1(x) if x<=0 y=sin(x);

MATLAB实验报告50059

实验一MATLAB操作基础 实验目的和要求: 1、熟悉MATLAB的操作环境及基本操作方法。 2、掌握MATLAB的搜索路径及设置方法。 3、熟悉MATLAB帮助信息的查阅方法 实验内容: 1、建立自己的工作目录,再设置自己的工作目录设置到MA TLAB搜索路径下,再试 验用help命令能否查询到自己的工作目录。 2、在MA TLAB的操作环境下验证课本;例1-1至例1-4,总结MATLAB的特点。 例1-1

例1-2 例1-3 例1-4

3、利用帮助功能查询inv、plot、max、round等函数的功能。 4、完成下列操作: (1)在matlab命令窗口输入以下命令: x=0:pi/10:2*pi; y=sin(x); (2)在工作空间窗口选择变量y,再在工作空间窗口选择回绘图菜单命令或在工具栏中单击绘图命令按钮,绘制变量y的图形,并分析图形的含义。

5、访问mathworks公司的主页,查询有关MATLAB的产品信息。 主要教学环节的组织: 教师讲授实验目的、开发环境界面、演示实验过程,然后同学上机练习。 思考题: 1、如何启动与退出MA TLAB集成环境? 启动: (1)在windows桌面,单击任务栏上的开始按钮,选择‘所有程序’菜单项,然后选择MA TLAB程序组中的MA TLABR2008b程序选项,即可启动 MATLAB系统。 (2)在MA TLAB的安装路径中找到MA TLAB系统启动程序matlab.exe,然后运行它。 (3)在桌面上建立快捷方式后。双击快捷方式图标,启动MA TLAB。 退出: (1)在MA TLAB主窗口file菜单中选择exitMATLAB命令。 (2)在MA TLAB命令窗口中输入exit或quit命令。 (3)单击MATLAB主窗口的关闭按钮。 2、简述MATLAB的主要功能。 MATLAB是一种应用于科学计算领域的数学软件,它主要包括数值计算和符 号计算功能、绘图功能、编程语言功能以及应用工具箱的扩展功能。 3、如果一个MATLAB命令包含的字符很多,需要分成多行输入,该如何处理?

matlab实验五答案1

实验五 1、编写程序,该程序在同一窗口中绘制函数在 []0,2π之间的正弦曲线和余弦曲线,步长 为200/π,线宽为2个象素,正弦曲线设置为蓝色实线,余弦曲线颜色设置为红色虚线,两条曲线交点处,用红色星号标记并标注sin(x)=cos(x);通过函数方式在生成的图形中添加注释,至少应包括:标题,文本注释,图例和坐标轴标注。%x=linspace(0,2*pi,1000);x=[0:pi/200:2*pi]sinx =sin(x);cosx =cos(x); k=find(abs(sinx-cosx)<1e-2);x1=x(k); plot(x,sinx,'LineWidth',2) hold on ,plot(x,cosx,'r:','LineWidth',2)hold on ,plot(x1,sin(x1),'r*')xlabel('x:(0-2\pi)'); ylabel('y:sin(x)/cos(x)'); title('正弦-余弦曲线'); text(x1+0.1,sin(x1),'sin(x)=cos(x)');legend('sin(x)','cos(x)'); 1 2 34 5 6 7 x:(0-2π) y :s i n (x )/c o s (x ) 正弦-余弦曲线 2、绘制图像:双曲抛物面:22 x y z =- ,1616x -<<,44y -<<,并对绘制的双曲抛物面尝试进行视点控制。 [X,Y]=meshgrid(-16:0.4:16,-4:0.1:4);Z =X.^2/16-Y.^2/4; subplot(1,3,1),plot3(X,Y,Z),view(0,180),title('azimuth =0,elevation =180'); subplot(1,3,2),plot3(X,Y,Z),view(-37.5,-30),title('azimuth =

MATLAB实验五 函数文件

MATLAB实验报告 学院:光电学院 班级:073-1 姓名:刘颖 学号:200713503117

实验五 函数文件 1.定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。 程序设计: function [e ln s c]=num(x) e=exp(x) ln=log(x) s=sin(x) c=cos(x) end 运行结果: >> num(5i) e = 0.2837 - 0.9589i ln = 1.6094 + 1.5708i s = 0 +74.2032i c = 74.2099 ans = 0.2837 - 0.9589i 2.一物理系统可用下列方程组来表示: ??? ? ??? ???????= ?????? ??? ??? ???????????? ??----g g m m N N a a m m m m 2121212 111001cos 0 0sin 00cos 0 sin 0sin cos θ θθ θθθ 从键盘输入 m 1 、 m 2 和θ的值,求 N a a 121、、和 N 2 的值。其中g 取9.8,输入θ时以角度为单位。 程序设计: 函数文件in.m: function [a1,a2,N1,N2]=in(m1,m2,t) g=9.8; A=[m1*cos(t) -m1 -sin(t) 0;m1*sin(t) 0 cos(t) 0;0 m2 -sin(t) 0;0 0 -cos(t) 1]; C=[0;m1*g;0;m2*g]; B=inv(A)*C; a1=B(1); a2=B(2); N1=B(3); N2=B(4); end 调用in.m 的命令文件: >> m1=1;m2=2;t=30*pi/180; >> [a1,a2,N1,N2]=in(m1,m2,t) 运行结果: a1 = 6.5333 a2 = 1.8860 N1 = 7.5440 N2 = 26.1333 4.设 f(x)= 01 .01 1 .01 ) 3() 2(4 2 +++--x x , 编写一个MATLAB 函数文件fx.m ,使得调用f(x)时,x 可用矩阵代入,得出的f(x)为同阶矩阵。 程序设计: 函数文件fx.m: function A=fx(x) A=1./((x-2).^2+0.1)+1./(((x-3).^4)+0.01) end 调用fx.m 的命令文件: >> A=fx([1 2;2 3;4 3]) 运行结果: A = 0.9716 10.9901 10.9901 100.9091 1.2340 100.9091 5.已知y= ) 20()30() 40(f f f + (1)当f(n)=n+10ln(n 2+5)时,求y 的值。

实验5 Matlab程序设计1

实验5 Matlab 程序设计1 实验目的: 1、 掌握建立和执行M 文件的方法; 2、 掌握实现选择结构的方法; 3、 掌握实现循环结构的方法。 实验内容: 1. 从键盘输入一个4位整数,按如下规则加密后输出。加密规则:每位数字都加上7,然 后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。 2. 求分段函数的值。 ,x x x x y x x x x x x x ?+- <≠-?=-+ ≤<≠≠??-- ?2226035605231且且及其他 用if 语句实现,分别输出x=-5,-3,0,1,2,2.5,3,5时的y 值。请输入x 的值 x=input('请输入x 的值'); if x<0&x~=-3 y=x*x+x-6; elseif 0<=x&x<5&x~=2&x~=3 y=x*x-5*x+6; else y=x*x-x-1; end y

second 请输入x的值-5 y = 14 second 请输入x的值-3 y = 11 >> second 请输入x的值0 y = 6 >> second 请输入x的值1

y = 2 >> second 请输入x的值2 y = 1 >> second 请输入x的值2.5 y = -0.2500 >> second 请输入x的值3

5 >> second 请输入x的值5 y = 19 >> 3.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E,其中90~100分为A,80~89 分为B,70~79分为C,60~69分为D,60分以下为E。 要求: (1)分别用if语句和swich语句实现。 (2)grade=input('input grade:'); (3)if grade<=100&grade>=90 (4)level='A'; (5)elseif grade<=89&grade>80 (6)level='B'; (7)elseif 70<=grade&grade<=79

实验五.函数文件的编写

闽江学院电子系 实验报告 学生姓名:班级:学号:3142731 课程:函数文件的编写 一、(填实验几,例:试验一):实验五 二、实验地点:实验楼A210 实验目的: 1.掌握函数文件的定义方法,函数头的写法; 2.掌握调用函数文件的方法,了解函数文件的嵌套调用; 3.熟悉MATLAB函数文件的特点。 三、实验内容: 1、定义一个函数文件lifang.m,用于计算一个立方体的表面积和体积。在命令窗口中调用它。函数文件: 命令窗口:

2、当n分别取100、1000、10000时,求下列各式的值: (1) 2 2232 1111 1236 n π ??++++= ? ?? (2) ()() ()() 22 224466 133******** n n n n π ?? ? ??? ???????? = ? ????? ? ????-+ ???????? ?? 要求用函数文件的定义和调用来实现。(1)函数文件的定义: 函数文件的调用: 命令窗口:

(2)函数文件的定义: 函数文件的调用: 命令窗口: 3、利用函数文件,实现极坐标(,)ρθ与直角坐标(,)x y 之间的转换,并通过函数调用加以验证。 直角坐标转化为极坐标函数定义: 极坐标转化为直角坐标函数定义:

函数文件的调用: 命令窗口: 4、利用预定义变量nargin和nargout,实现以下功能的函数:若输入只有一个参数,输出以 该参数为半径的球的体积;若输入有两个参数,输出分别以该参数为底面半径和高的圆柱体积;若输入有三个参数,输出分别以该参数为三条边的长方体的体积;若输入参数多

matlab实验报告

实验一小球做自由落体运动内容:一小球竖直方向做自由落体,并无损做往返运动。程序: theta=0:0.01:2*pi x=cos(theta) y=sin(theta) l=1 v=1 while l<10 for t=1:10 y=y+(-1)^l*v*t plot(x,y,[-1,1],[-56,2],'.') axis equal pause(0.1) end l=l+1 end 结果:

-50 -40 -30 -20 -10 收获:通过运用小球自由落体规律,及(-1)^n 来实现无损往 返运动! 实验二 旋转五角星 内容:一个五角星在圆内匀速旋转 程序:x=[2 2 2 2 2 2] y=[0 4/5*pi 8/5*pi 2/5*pi 6/5*pi 0] y1=2*sin(y) x1=2*cos(y) theta=0:4/5*pi:4*pi

x2=2*cos(theta) y2=2*sin(theta) plot(x,y,x1,y1,x2,y2) axis equal theta1=theta+pi/10 x2=2*cos(theta1) y2=2*sin(theta1) plot(x2,y2) axis equal theta=0:4/5*pi:4*pi for rot=pi/10:pi/10:2*pi x=2*cos(theta+rot) y=2*sin(theta+rot) plot(x,y) pause(0.1) end 结果:

-2 -1.5-1-0.500.51 1.52 -2-1.5-1-0.500.511.5 2 收获:通过theta1=theta+pi/10,我们可以实现五角星在圆内匀速 旋转! 实验三 转动的自行车 内容:一辆自行车在圆内匀速转动 程序:x=-4:0.08:4; y=sqrt(16-x.^2); theta1=-pi/2:0.01*pi:3*pi/2; x3=0.5*cos(theta1); y3=0.5*sin(theta1); theta=-pi/2+0.02*pi for k=1:100

参考答案Matlab实验报告

实验一 Matlab基础知识 一、实验目的: 1.熟悉启动和退出Matlab的方法。 2.熟悉Matlab命令窗口的组成。 3.掌握建立矩阵的方法。 4.掌握Matlab各种表达式的书写规则以及常用函数的使 用。 二、实验内容: 1.求[100,999]之间能被21整除的数的个数。(rem) 2.建立一个字符串向量,删除其中的大写字母。(find) 3.输入矩阵,并找出其中大于或等于5的元素。(find) 4.不采用循环的形式求出和式 63 1 2i i= ∑ 的数值解。(sum) 三、实验步骤: ●求[100,199]之间能被21整除的数的个数。(rem) 1.开始→程序→Matlab 2.输入命令: ?m=100:999; ?p=rem(m,21); ?q=sum(p==0) ans=43 ●建立一个字符串向量,删除其中的大写字母。(find) 1.输入命令:

?k=input('’,’s’); Eie48458DHUEI4778 ?f=find(k>=’A’&k<=’Z’); f=9 10 11 12 13 ?k(f)=[ ] K=eie484584778 ●输入矩阵,并找出其中大于或等于5的元素。(find) 1.输入命令: ?h=[4 8 10;3 6 9; 5 7 3]; ?[i,j]=find(h>=5) i=3 j=1 1 2 2 2 3 2 1 3 2 3 ●不采用循环的形式求出和式的数值解。(sum) 1.输入命令: ?w=1:63; ?q=sum(2.^w) q=1.8447e+019

实验二 Matlab 基本程序 一、 实验目的: 1. 熟悉Matlab 的环境与工作空间。 2. 熟悉M 文件与M 函数的编写与应用。 3. 熟悉Matlab 的控制语句。 4. 掌握if,switch,for 等语句的使用。 二、 实验内容: 1. 根据y=1+1/3+1/5+……+1/(2n-1),编程求:y<5时最大n 值以及对应的y 值。 2. 编程完成,对输入的函数的百分制成绩进行等绩转换,90~100为优,80~89为良,70~79为中,60~69为及格。 3. 编写M 函数文件表示函数 ,并分别求x=12和56时的函数值。 4. 编程求分段函数 2226;03 56;0532 1;x x x x y x x x x x x x +-<≠=-+≤<≠≠-+且且及其它,并求输入x=[-5.0,-3.0,1.0,2.0,2.5,3.0,3.5]时的输出y 。 三、 实验步骤: 根据y=1+1/3+1/5+……+1/(2n-1),编程求:y<5时最大n 值以及对应的y 值。 1. 打开Matlab ,新建M 文件 2. 输入命令: 51022-+x

实验五 函数文件的编写

闽 江 学 院 电 子 系 实 验 报 告 学生姓名: 班级: 学 号: 课程:MATLAB 程序设计教程 一、实验题目:函数文件的编写 二、实验地点:A210 三、实验目的: 1、掌握函数文件的定义方法,函数头的写法; 2、掌握调用函数文件的方法,了解函数文件的嵌套调用; 3、熟悉MATLAB 函数文件的特点。 四、实验内容: 1、定义一个函数文件lifang.m ,用于计算一个立方体的表面积和体积。在命令窗口中调用它。 2、当n 分别取100、1000、10000时,求下列各式的值: (1)2223211111236n π??++++= ??? (2)()()( )()2222446613355721212n n n n π??????????????= ? ????? ? ????-+?????????? 要求用函数文件的定义和调用来实现。 3、利用函数文件,实现极坐标(,)ρθ与直角坐标(,)x y 之间的转换,并通过函数调用加以验证。 4、利用预定义变量nargin 和nargout ,实现以下功能的函数:若输入只有一个参数,输出以该参数为半径的球的体积;若输入有两个参数,输出分别以该参数为底面半径和高的圆柱体积;若输入有三个参数,输出分别以该参数为三 条边的长方体的体积;若输入参数多于三个,则报错。 5、 先用函数的递归调用定义一个函数文件求1n m i i =∑,然后调用该函数文件求10050102111 1k k k k k k ===++∑∑∑。

五、实验环境(使用的软硬件):Matlab6.5 六、实验步骤及操作: 1.计算立方体体积 函数文件lifang.m 2求函数值 (1)

(完整版)Matlab实验5选择结构程序结构

实验五、选择与循环结构 一、实验目的: 1、 掌握建立和执行M 文件的方法。 2、 掌握利用if 语句实现选择结构的方法。 3、 掌握利用switch 语句实现多分支选择结构的方法。 4、 掌握try 语句的使用。 5、 掌握利用for 语句实现循环结构的方法。 6、 掌握利用while 语句实现循环结构的方法。 7、 熟悉利用向量运算来代替循环的操作方法。 二、实验内容: 1、 列分段函数的值。 ?? ???--≠≠<≤+--≠<-+=其他且且,632,100,6530,6222x x x x x x x x x x x y 要求: (1) 用if 语句实现,分别输出x =-0.5,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。 提示:x 的值从键盘输入,可以是向量。 %homework_5_1_1.m x=input('请输入x 的值:x='); if (x<0 & x~=-3) y= x.*x + x - 6 elseif (x>=0 & x<10 & x~=2 & x~=3) y=x.*x-5.*x+6 else y=x.*x-x-6 end >> homework_5_1 请输入x 的值:x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0] y = -5.2500 6.0000 -6.0000 -4.0000 -2.2500 0 14.0000 (2) 用逻辑表达式实现上述函数。 %homework_5_1_2.m x=input('请输入x 的值:x=') y=(x<0 & x~=-3).*(x.*x+x-6)... +(x>=0 & x<10 &x~=2 &x~=3).*(x.*x-5.*x+6)... +(x>=10 | x==-3 | x==3 | x==2).*(x.*x-x-6) >> homework_5_1_2 请输入x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0] x = -0.5000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 y = -6.2500 6.0000 2.0000 -4.0000 -0.2500 0 6.0000

实验五--M文件和MATLAB程序设计

实验五--M文件和MATLAB程序设计

实验五 M文件和MATLAB程序设计 一、实验目的 matlab作为一种高级计算机语言,不仅可以命令行方式完成操作,也具有数据结构、控制流、输入输出等能力,本次实验通过熟悉和掌握m 文件的建立与使用方法,以及函数与控制程序流程语句的使用,使学生具备一定的编程和程序调试能力。 1.掌握M文件的使用方法。 2.掌握if语句和switch语句的使用 3. 掌握循环语句的使用 4. 通过练习理解MATLAB编程方法。 二、实验原理 1.m文件 用matlab语言编写的程序,称为m文件。M文件根据调用方式的不同分为两类,命令文件(Script file)和函数文件(Function file)。区别? 2.程序控制结构 1)顺序结构 2)选择结构 (1)if语句a) 单分支if语句b) 双分

支if语句c) 多分支if语句 (2)switch 语句 (3)try语句 3)循环结构 (1)for 语句 (2)while语句 (3)break语句、continue语句、return使用,区别? 3.函数文件 function 输出形参表=函数名(输入形参表) 注释说明部分 函数体语句 三、实验要求 1.首先上机练习PPT中各种流程控制语句的有关实例。 2.然后上机练习下面的实验习题。 四、实验习题 1.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如:

3→10→5→16→8→4→2→1 6→3→10→5→16→8→4→2→1 运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。 %classic "3n+1" problem from number theory. while 1 n=input('Enter n,negative quits:'); if n<=0 break end a=n; while n>1 if rem(n,2)==0 n=n/2; else n=3*n+1; end a=[a,n]; end a

matlab实验报告

Matlab实验报告 实验二图像处理 一、实验目的 (1)通过应用MA TLAB语言编程实现对图像的处理,进一步熟悉MATLAB软件的编程及应用; (2)通过实验进一步掌握图像处理的基本技术和方法。 二、实验内容及代码 ㈠.应用MA TLAB语言编写显示一幅灰度图像、二值图像、索引图像及彩色图像的程序,并进行相互之间的转换 首先,在matlab页面中的current directory下打开存放图像的文件夹。 1.显示各种图像 ⑴显示彩色图像: ①代码:>> mousetif=imread('tif.TIF'); >> image(mousetif) 显示截图: ②代码:>> mousetif=imread('tif.TIF'); >> imshow(mousetif) 显示截图:

③代码:mousetif=imread('tif.TIF'); subimage(mousetif) 显示截图: 显示截图:

⑵显示二值图像 ①代码:>> I=imread('单色bmp.bmp'); >> imagesc(I,[0 2]) 显示截图: ②代码:>> I=imread('单色bmp.bmp');

>> imshow(I,2) 显示截图: ③代码:>> I=imread('单色bmp.bmp'); >> subimage(I) 显示截图:

⑶显示灰度图像 ①代码:>> I1=imread('256bmp.bmp'); >> imagesc(I1,[0,256]) 显示截图: 代码:>> I1=imread('256bmp.bmp'); >> colormap(gray); >> subplot(1,2,1); >> imagesc(I1,[0,256]); >> title('灰度级为[0 256]的mouse.bmp图'); >> subplot(1,2,2); >> imagesc(I1,[0,64]); >> colormap(gray); >> title('灰度级为[0 64]的mouse.bmp图'); 显示截图:

实验五MATLAB的基本绘图方法

实验三MATLAB的基本绘图方法 一、实验目的 1.二维平面图形的绘制 2.三维立体图形的绘制 3.隐函数作图 二、实验地点:A404 三、实验日期: 四、实验内容 (一)二维平面图形的绘制 1、Plot的使用方法介绍 plot 是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。也就是说,使用plot 函数之前,必须首先定义好曲线上每一点的x 及y 坐标,常用格式为:(1)plot(x) 当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制 曲线。当x 为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的曲线,当x 为m×n 矩阵时,就由n 条曲线。 (2)plot(x,y) 以x 元素为横坐标值,y 元素为纵坐标值绘制曲线。 (3)plot(x,y1,x,y2,…) 以公共的x 元素为横坐标值,以y1,y2,…元素为纵坐标值绘制多条曲线。 例1:画出一条正弦曲线和一条余弦曲线。 >> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2) 注:在绘制曲线图形时,常常采用多种颜色或线型来区分不同的数据组,MA TLAB 软件专门提供了这方面的参数选项,我们只要在每个坐标后加上相关字符串,就可实现它们的功能。具体参见教材。 2、图形修饰 MATLAB 软件为用户提供了一些特殊的图形函数,用于修饰已经绘制好的图形。 图形修饰函数表如下: 函数含义 grid on (/off) 给当前图形标记添加(取消)网络 xlable(‘string’) 标记横坐标 ylabel(‘string’) 标记纵坐标 title(‘string’) 给图形添加标题 text(x,y,’string’) 在图形的任意位置增加说明性文本信息 gtext(‘string’) 利用鼠标添加说明性文本信息 axis([xmin xmax ymin ymax]) 设置坐标轴的最小最大值 例2、给例1的图形中加入网络和标记。 >> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2)

MATLAB程序设计实验报告

MATLAB实验报告 一、实验名称 实验4图形绘制(1) 二、实验目的: 熟悉和掌握MA TLAB基本的二维图形绘制函数。 三、实验内容: 1.绘制简单的二维图形 2.一个坐标系绘制多幅图形 3.图形标识和坐标控制 4.交互式图形指令 四、回答问题: (本次实验未预留问题) 五、遇到的问题及解决: 遇到了求y=lnx时,输入“y=ln(x)”不被软件识别的问题,查看常用数学函数表后改为y=log(x)成功解决。 在求10x时不知道用什么函数,函数表里也查不到,在老师的点拨下用“y=10.^x”解决。 在绘图时发现默认线型不够明显,查表后使用尖三角、叉号代替默认线型。 六、体会: 本次实验我学会了利用MATLAB绘制图形的基本方法,以及相应的备注方法。 难点是了解各种函数的具体作用并熟练掌握。 体会是:多学多练,孰能生巧,日积月累,必有提高。

思考题: 1.在同一坐标系绘制t3,-t2,t2sint在[0,2π]内的曲线图。 x=0:pi/50:2*pi; y1=t.*t.*t; y2=-t.*t; y3=t.*t.*sin(t); plot(t,y1,'^k',t,y2,'.k',t,y3,'xk'); legend('\ity=t^3','\ity=-t^2','\itt^2*sint'); 2.在一幅图中画出4幅子图,分别绘制sin2x,tanx,lnx,10x的图形,并加上适当的图形注释。注意:把函数变成MATLAB对应的形式。 x=0:pi/50:2*pi; y1=sin(2*t); y2=tan(x); y3=log(x); y4=10.^x; subplot(2,2,1) plot(x,y1); legend('y=sin2x'); subplot(2,2,2) plot(x,y2) legend('y=tanx'); subplot(2,2,3) plot(x,y3)

Matlab实验

MATLAB实验报告 学校:湖北文理学院 学院:物理与电子工程学院 专业:电子信息工程 学号: 2013128182 姓名:张冲 指导教师:宋立新

实验一 MATLAB环境的熟悉与基本运算 一、实验目的: 1.熟悉MATLAB开发环境 2.掌握矩阵、变量、表达式的各种基本运算 二、实验内容 1、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明, 学习使用指令eye(其它不会用的指令,依照此方法类推) 2、学习使用clc、clear,观察command window、command history和workspace 等窗口的变化结果。 3、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、 exerc2、exerc3……),学习使用MATLAB的基本运算符。 三、练习 1)help rand,然后随机生成一个2×6的数组,观察command window、 command history和workspace等窗口的变化结果。 2)学习使用clc、clear,了解其功能和作用。 3)用逻辑表达式求下列分段函数的值 4)求[100,999]之间能被21整除的数的个数。(提示:rem,sum的用法) 四、实验结果 1)

2)clc:清除命令窗口所有内容,数值不变;clear:初始化变量的值。3) 4)

实验二 MATLAB数值运算 一、实验目的 1、掌握矩阵的基本运算 2、掌握矩阵的数组运算 二、实验内容 1)输入C=1:2:20,则C(i)表示什么?其中i=1,2,3, (10) 2)输入A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2; 3 3 3],在命令窗 口中执行下列表达式,掌握其含义: A(2, 3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B A^2 A.^2 B/A B./A 3)二维数组的创建和寻访,创建一个二维数组(4×8)A,查询数组A第2 行、第3列的元素,查询数组A第2行的所有元素,查询数组A第6列的所有 元素。 4)两种运算指令形式和实质内涵的比较。设有3个二维数组A 2×4,B 2×4 ,C 2×2 , 写出所有由2个数组参与的合法的数组运算和矩阵指令。 5)学习使用表4列的常用函数(通过help方法) 6)学习使用表5数组操作函数。 7)生成一个3行3列的随机矩阵,并逆时针旋转90°,左右翻转,上下翻转。 8)已知a=[1 2 3],b=[4 5 6],求a.\b和a./ b 9)用reshape指令生成下列矩阵,并取出方框内的数组元素。 三、实验结果 1)C(i)表示C中的第i个的数值;

实验5 函数

实验5 函数 实验要求: 使用Visual C++ 6.0开发环境,完成以下习题。 1. 编程实现:分别编写一个求三个整数最大值的函数max,和一个求三个整数最小值的函数min,然后在主函数输入三个整数的值,分别调用max和min函数求最大最小值,并输出。源程序保存为5_1.c文件。 2. 编程实现:编写一个函数,由实参(数组传参)传来一个字符串(字符数组),统计此字符串中字母、数字(0~9)、空格和其它字符的个数,要求在主函数中输入字符串以及输出上述结果。字符串的大小(里面所包含的字符个数)可以是固定的,亦可以是根据输入情况变化。源程序保存为5_2.c文件。 3. 选做题:在一体育比赛中,有10个评委为参赛选手打分(分数在1~10之间),分数使用数组保存,求选手的最后得分,选手最后得分规则:去掉一个最高分和一个最低分后其余分数的平均值。编写一个函数;(例如:函数名为:calculator)计算选手的最后得分。在主函数中定义分数数组,并输入分数,调用自己函数计算最后得分,输出最后得分,结果保留2位小数。 源程序保存为5_3.c 实验提交要求: 1.每位同学的文件必须严格按照题目的要求对文件进行命名,否则按不提交作 业处理。 2.每位同学的作业放在一个文件夹中提交,只需提交源文件(后缀名是.c的文 件),文件夹按以下格式命名: “班内序号_姓名_实验5” 例如:01_黄明_实验5 3.实验完成后,提交到指定服务器。服务器地址: ftp://fcy:fcy@10.5.1.5 请提交到服务器的“作业→高级语言程序设计(C)→实验5”文件夹中以各自

班级名称命名的文件夹内。 (请认清楚班级名称提交,切勿提交到其他班的文件夹中。)

实验5 Matlab绘图操作实验报告

Tutorial 5 实验报告 实验名称:Matlab 绘图操作 实验目的: 1、 掌握绘制二维图形的常用函数; 2、 掌握绘制三维图形的常用函数; 3、 掌握绘制图形的辅助操作。 实验内容: 1. 设sin .cos x y x x ?? =+ ??+?? 23051,在x=0~2π区间取101点,绘制函数的曲线。 2. 已知: y x =21,cos()y x =22,y y y =?312,完成下列操作: (1) 在同一坐标系下用不同的颜色和线性绘制三条曲线; (2) 以子图形式绘制三条曲线; (3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 3. 已知:ln(x y x x ≤=??+>??0102 ,在x -≤≤55区间绘制函数曲线。 4. 绘制极坐标曲线sin()a b n ρθ=+,并分析参数a 、b 、n 对曲线形状的影响。 5.在xy 平面内选择区域[][],,-?-8888, 绘制函数z =的三种三维曲面图。 6. 用plot 函数绘制下面分段函数的曲线。 ,(),,x x f x x x x ?+>? ==??+

8. 在同一坐标轴中绘制下列两条曲线。 (1).y x =-205 (2)sin()cos ,sin()sin x t t t y t t π=?≤≤? =?303 实验结果: 1. 2. (1)

(2)

(3)

实验5说明

实验5说明(函数和指针) 注意,在实验过程中,你编写的程序不要存放在桌面或者C盘,要存在D 盘上。 实验做完之后,会有4个文件:test5-1.c,test5-2.c,test5-3.c,test5-4.c,将这4个文件压缩为学号-姓名-实验5.rar,其中,学号是你自己的学号,姓名是你自己的姓名。 实验5提交截至时间:2011.6.7(第16周周二),22:00之前。 实验5提交地址:ftp://202.204.120.77/hanhui/计算机应用基础/homework/C 语言中各班文件夹中的实验5文件夹。 同学们在上机的时候,请选择开机菜单中的“Develop”项进入系统。 同学们在编写程序的时候,对于需要做注释的语句,要给出适当的注释。 第一部分 编写程序,程序名称命名为test5-1.c,完成如下任务: (1)有很多物体,比如球体、立方体、圆柱体……,它们都有体积和表面积,要求求取哪个物体的体积和表面积,程序就必须输出那个物体的体积和表面积。 (2)编写球体子函数、立方体子函数、圆柱体子函数(思考一下,为什么形参中的体积和表面积必须用指针?),它们的功能是返回各自的体积和表面积。 (3)在主函数中调用三个子函数(思考一下,调用函数时,传递的实参是什么?),输入1时,输出球体的体积和表面积;输入2时,输出立方体的体积和表面积;输入3时,输出圆柱体的体积和表面积。 (4)在输入1、2或者3时,为了防止误输入,在主函数中要用do…while 语句实现纠错功能。(思考一下,为什么用do…while语句会比较好?)

第二部分 编写程序,程序名称命名为test5-2.c,完成如下任务: (1)编写求最大值子函数max、求最小值子函数min、求和子函数sum,它们函数头如下所示: float max(float *p, int n) float min(float *p, int n) float sum(float *p, int n) (2)在主函数main中定义一个一维数组a(数组元素的个数由你来定),调用上述子函数,分别求出数组的最大值、最小值、总和,并且输入结果。(思考一下,调用子函数的时候,传递的实参是什么?) 第三部分 将下面一段程序存储为test5-3.c,读懂该程序的功能,并且对主函数和子函数中的变量、参数、以及执行语句做出注释,并且用注释的形式说明子函数的功能: #include #include void main() { void inverse(char str[]); char string[100]; printf("input string:"); gets(string); inverse(string); printf("inverse string:%s\n",string); } void inverse(char str[]) {

相关主题
文本预览
相关文档 最新文档