MATLAB中程序设计范文
MATLAB 中的程序设计
学
生
姓
名
学
号
成
绩
学生所在学院
年级/ / 专业/ / 班
课
程
名
称
课
程
代
码
实验项目名称
实验 六和实验七 :
MATLAB中的程序设计
项
目
代
码
指
导
教
师
项
目
学
分
一、实验目的
1、熟悉和掌握函数调用和参数传递。
2、掌握 MATLAB 中 M 文件的功能、特点和形式。
3、掌握 MATLAB 中程序结构和程序流控制。
4、掌握 MATLAB 中字符和字符串的使用。
二、 实验原理
1、函数文件 函数文件的基本结构:
函数文件由 function 语句引导,其基本结构为:
function 输出形参表=函数名(输入形参表)
注释说明部分
函数体语句 说明:
(1)关于函数文件名: 函数文件名与函数名也可以不相同。当两者不同时,MATLAB 将忽略函数名而确认函数文件名,因此调用时使用函数文件名。
(2)关于注释说明部分。注释说明包括三部分内容:①紧随函数文件引导行之后以%开头的第一注释行。②第一注释行及之后连续的注释行。③与在线帮助文本相隔一空行的注释行。
(3)关于 return 语句。执行到该语句就结束函数的执行,程序流程转至调用该函数的位置。通常,在函数文件中也可不使用 return 语句,这时在被调函数执行完成后自动返回。
2、函数调用
函数调用的一般格式是:
[输出实参表]=函数名(输入实参表) M 文件有命令文件和函数文件两种,扩展名均为“.m”。运行一个命令文件等价于从指令窗口中按顺序连续运行文件中的指令。每个函数文件都定义一个函数,其第一行包含 function。
MATLAB 中循环结果由 while 和 for 语句实现,分支结构由 if 语句实现。其结构和 C 语言中对应语句类似。
MATLAB中有关程序流控制的语句和函数有echo、input、pause、break、keyoard 等,实验中要用到的指令为 input 函数,该指令提示用户从键盘输入数值、字符串或表达式,并接受输入。
MATLAB 中所有字符串都要用单引号界定后输入或赋值,字符串的每个字符都是矩阵的一个元素。用 eval 指令可以运行字符串。
MATLAB 中调用函数的常用形式是:[输出参数 1,输出参数 2,…]=函数名(输入参数 1,输入参数 2,…)。注意函数调用时各参数出现的顺序,应该和函数定义时的顺序一样。
三、 实验设备、仪器及材料
高性能计算机,MATLAB 软件。
四、实验步骤 (按照实际操作过程 )
1、建立一个命令文件将变量 a,b 的值互换,然后运行该命令文件。其中,a 为 1~10, 。
2、编写 M 脚本文件,计算函数 的值,其中 t 的范围为 ,步长取 。
3、编写 M 函数文件求半径为 r 的圆的面积和周长,并调用该函数文件求 r=5 的圆的面积和周长。
11 12 13 1415 16 17 18b 2 21 5 sin(4 ), 2 5 cos(4 )t ty e t y e t [0,2 ] 0.05
4、编写 M 函数文件,利用函数的递归调用求 n!并调用该函数文件求6!。
5、编写 M 文件,分别用 while 语句、for 语句求 1+2+3+4…+100。
6、 编写子函数分别求当 大于 0,等于 0 和小于 0 时,方程的根。从主函数中用 input 指令输入 a、b、c 值,求相应方程的根。
7、分别用 M 脚本文件和 M 函数文件绘制如下二阶系统的时域曲线:
,其中 取 0.3。
8、编写 M 文件,在同一个图形窗口中分别绘制函数 、、 的图形,x 从 0 到 5π。
五 、 实验过程记录( ( 数据、图表、计算等) )
1 1 、先编写 m exchang.m 文件
clear; a=1:10; b=[11 12 13 14 15 16 17 18]; c=a; a=b; b=c; 再编写 m iexchang.m 文件
function [a,b]=exchang(a,b) c=a; a=b; b=c; 调用函数
clear; ac b 4202 c bx ax2211 sin( 1 arccos )1xy e x 2) sin( ) ( x x f 5) cos( ) ( x x f 5 2) cos( ) sin( ) ( x x x f
x=1:10; y=[11 12 13 14 15 16 17 18]; [x,y]=iexchang(x,y) 结果为 :
x =
11
12
13
14
15
16
17
18 y =
1
2
3
4
5
6
7
8
9
10
2 2 、 编写 m sy2.m 文件
t=0:0.05*pi:2*pi; y1=5*exp(-2*t).*sin(4*t); y2=5*exp(-2*t).*cos(4*t); 调用 m sy2.m 文件
sy2.m
结果为 :
y1 =
1 至 14 列
0
2.1466
2.5369
1.8529
0.8364
0.0000
-0.4462
-0.5274
-0.3852
-0.1739
-0.0000
0.0928
0.1096
0.0801
15 至 28 列
0.0361
0.0000
-0.0193
-0.0228
-0.0166
-0.0075
-0.0000
0.0040
0.0047
0.0035
0.0016
0.0000
-0.0008
-0.0010
29 至 41 列
-0.0007
-0.0003
-0.0000
0.0002
0.0002
0.0001
0.0001
0.0000
-0.0000
-0.0000
-0.0000
-0.0000
-0.0000 y2 =
1 至 14 列
5.0000
2.9545
0.8243
-0.6021
-1.1513
-1.0394
-0.6142
-0.1714
0.1252
0.2393
0.2161
0.1277
0.0356
-0.0260
15 至 28 列
-0.0498
-0.0449
-0.0265
-0.0074
0.0054
0.0103
0.0093
0.0055
0.0015
-0.0011
-0.0021
-0.0019
-0.0011
-0.0003
29 至 41 列
0.0002
0.0004
0.0004
0.0002
0.0001
-0.0000
-0.0001
-0.0001
-0.0000
-0.0000
0.0000
0.0000
0.0000
3 3 、编写 m sy3.m 文件
function [s,c]=sy3(r) s=pi*r^2; c=2*pi*r; 调用 m sy3.m 文件
r=5; [s,c]=sy3(r) 结果为:
s =
78.5398
c =
31.4159
4 4 、 编写 m sy4.m 文件
function f=sy4(n) if n<=1
f=1; else
f=sy4(n-1)*n; end 调用
n=6; f=sy4(n)
结果为:
f =
720
5 5 、 编写 m sy5.m 文件
sum=0; i=1; while i<=100
sum=sum+i
i=i+1 end sum; 结果为 :
sum =
5050
6 6 、
7 7 、M M 函数文件
x=0:0.1:20; zeta=0; y=1-exp(-zeta*x).*sin(sqrt(1-zeta^2)*x+acos(zeta))/sqrt(1-zeta^2); plot(x,y)
编写 M M 脚本文件 m sy7_1.m 并存盘
function f=sy7(x) zeta=0; y=1-exp(-zeta*x).*sin(sqrt(1-zeta^2)*x+acos(zeta))/sqrt(1-zeta^2); plot(x,y) 调用
x=0:0.1:20; f=sy7_1(x)
结果为:
8 8 、
x=0:0.2:5*pi; y1=sin(x.^2); plot(x,y1) hold on y2=cos(x.^5); plot(x,y2,"r") hold on
y3=sin(x.^2)+cos(x.^5); plot(x,y3,"y")
六 、 实验 结果分析 及 问题讨论
命令文件和函数文件有什么区别?
相关热词搜索: 程序设计 MATLAB 范文上一篇:中小学语文考试最常见错别字