MATLAB应用第4章第2版Word格式文档下载.docx

上传人:b****6 文档编号:19643179 上传时间:2023-01-08 格式:DOCX 页数:13 大小:134.08KB
下载 相关 举报
MATLAB应用第4章第2版Word格式文档下载.docx_第1页
第1页 / 共13页
MATLAB应用第4章第2版Word格式文档下载.docx_第2页
第2页 / 共13页
MATLAB应用第4章第2版Word格式文档下载.docx_第3页
第3页 / 共13页
MATLAB应用第4章第2版Word格式文档下载.docx_第4页
第4页 / 共13页
MATLAB应用第4章第2版Word格式文档下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

MATLAB应用第4章第2版Word格式文档下载.docx

《MATLAB应用第4章第2版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《MATLAB应用第4章第2版Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。

MATLAB应用第4章第2版Word格式文档下载.docx

m文件分为两种,一种是脚本文件(命令文件),另一种是函数文件。

脚本文件

脚本文件就是以前在命令窗口输入的诸多命令的简单迭加,但是在输入过程中,并不伴随执行,而是全部输入完后保存下来,什么时候想执行就什么时候执行,命令完全按编写顺序执行。

这就解决了在命令窗口运行多条命令的麻烦,同时也可以使保存的程序反复使用。

例1用图形表示连续调制波形

及其包络线。

clearworkspace和clearcommandwindow

在MATLAB文本编辑器编辑

t=(0:

pi/100:

pi)'

;

%<

1>

y1=sin(t)*[1,-1];

2>

y2=sin(t).*sin(9*t);

%<

3>

figure,plot(t,y1,'

r:

'

t,y2,'

b'

);

%<

5>

axis([0,pi,-1,1]);

title('

连续调制波形'

legend('

包络线1'

'

包络线2'

调制波'

“debug(调试)”菜单“saveandrun”生成test1.m脚本文件,并运行它

注意workspace中的变量变化

如果workspace中原来没有储存变量,这时,m脚本文件中有几个变量,workspace中就会生成几个变量

而且,这些变量可以被其它命令或函数调用

例2在命令窗口输入

figure,plot(t,y2,'

在本例中,在命令窗口中,并没有给t,y2赋值,它们的数据都取自运行test1.m脚本文件时在workspace中生成的变量

同样,在workspace中的变量也可以被m文件调用

例3MATLAB文本编辑器编辑

点击“file”菜单“saveas…”,生成test2.m脚本文件

在这个文件中,没有给变量t赋值

在命令窗口输入

这时在workspace中生成t变量

在MATLAB文本编辑器中,“debug(调试)”菜单“run”

在本例中,m脚本文件中的程序是借助workspace中的t变量运行

以上所介绍的变量,无论是在命令窗口中赋值的,还是在m脚本文件中赋值的,只要能储存在workspace中,都称为全局变量

函数文件

m函数文件是以function为第1行的文件

它的基本结构如下:

function[输出变量列表]=函数名(输入变量列表)

注释说明语句段,由%引导

函数语句体

说明:

1.在[输出变量列表]中,如果只有一个变量,方括号可以省略

2.在这种文件中,输入变量列表中所列出的变量并没有被赋值。

因此m函数文件本身不能像m脚本文件那样独立地运行。

它只能被其它文件或命令调用。

在调用过程中,必须在命令窗口或其它文件中将输入变量列表中所列出的变量赋值。

3.函数的调用格式为:

[输出变量列表]=函数文件名(输入变量列表)

例4用图形表示连续调制波形

function[y1,y2]=test3(t,n)

y1=sin(n.*t)*[1,-1];

y2=sin(n.*t).*sin(9*t);

点击“file”菜单“saveas…”,生成test3.m函数文件

在这个文件中,输入变量列表中的变量t,n并没有被赋值

下面是对这个函数文件的调用

n=1;

%n=1时,与例1的情况相同

[y1,y2]=test3(t,n);

在这个例子中,如果给t和n赋不同的值,可以产生不同的结果

例5用图形表示连续调制波形

n=2;

在上两个例子中,在workspace都产生变量t、n、y1、y2,这和test3函数文件中的出现的变量及其数目是相同的。

但是,这仅仅是巧合。

例6用图形表示连续调制波形

及其包络线和零点。

function[y1,y2]=test4(t,n)

t3=pi*(0:

9)/9;

y3=sin(t3).*sin(9*t3);

figure,plot(t,y1,t,y2,t3,y3,'

mo'

axis([0,pi,-1,1]);

零点'

点击“file”菜单“saveas…”,生成test4.m函数文件

与test3.m函数文件相比,test4.m函数文件中多了t3和y3变量,而且它们并没有出现在文件的输入列表或输出列表中

在命令窗口输入下面的命令,注意观察workspace的变化

[y1,y2]=test4(t,n);

可以看到,虽然test4.m函数文件中多了t3和y3变量,都是在workspace并没有显示出来。

在workspace显示的是变量t、n、y1、y2。

实际上,变量t、n、y1、y2显示在workspace也是一种巧合。

例7用图形表示连续调制波形

s=(0:

m=1;

[z1,z2]=test4(s,m);

这时,在workspace,根本看不到函数文件定义的变量。

以前之所以在workspace能看到函数文件定义的变量,那是因为在命令窗口输入的变量碰巧和函数文件定义的变量一致。

从上面的分析看到,m函数文件的变量与m脚本文件的变量不同,并不存在于workspace。

实际上,每当函数文件运行时,MATLAB专门为函数文件开辟一个临时工作区间(contextworkspace)。

该空间称为函数工作区间(functionworkspace)。

所有中间变量都存放在函数工作区间中,当MATLAB执行完函数文件的最后一条指令后,或遇到return命令时,就结束该函数文件的运行,同时该临时函数空间及其所有的中间变量立即被清除。

这些存在于函数空间的中间变量称为局部变量。

它产生于该函数的运行过程中,其影响范围仅限于该函数本身。

注意,在函数文件中也可以产生全局变量。

这时需要通过global指令预先定义。

由于全局变量会损害函数的封闭性,因此不提倡在函数文件中使用全局变量。

3.m函数文件的名称可以与函数名不同。

例8将test3.m另存为test5.m,并将它的函数名改为“sin”

[y1,y2]=test5(t,n);

为了避免混乱,函数文件名应该与函数名一致

注意,函数文件名不能和MATLAB中已定义的函数同名

例9将test3.m另存为sin.m

在命令窗口输入下面的命令

[y1,y2]=sin(t,n);

4.2程序控制结构

循环语句

在实际问题中经常会遇到许多有规律的重复计算,如某些程序中需要反复执行某些语句。

这就需要调用循环语句进行控制。

在MATLAB中提供两种循环方式:

for循环和while循环。

for语句一般结构:

fori=V

循环结构体

end

其中,i为循环变量,V为一个向量,循环变量i每次从向量V中取一个值,执行一次循环体的内容,如此下去,直到执行完向量V中所有的元素,最后将自动结束循环体的执行。

for循环的特点是,它的循环判断通常是对循环次数的判断。

在一般情况下,循环次数是预先设定好的。

例1用for循环语句求解

s=0;

%定义变量s并赋初值

fori=1:

100%在循环体内,i不影响它在循环体外的预定义变量的作用

s=s+i;

%分号应该加上,否则会显示大量中间结果

s

while循环的基本结构:

while(条件式)

其中,条件式是一个逻辑表达式,若其值为真(非0),则将自动执行循环体内容,执行后再判断条件式的真伪,为真则继续执行循环体内容,否则退出循环体结构。

由于while语句具有判断控制功能,不是简单的定数循环,因此比for循环语句更灵活些,适用范围也就更广些。

例2用while循环语句求解

i=1;

%定义变量s和i并赋初值

while(i<

=100)%i<

=100时在循环体内,否则退出循环体

i=i+1;

%i作为计数用

例2求满足

的最小m值

这个问题用for循环不便求解,应该用while循环

m=0;

%定义变量s和m并赋初值

while(s<

=10000)%s<

=10000时在循环体内,否则退出循环体

m=m+1;

s=s+m;

[s,m]

选择语句

在复杂的计算中,常常需要根据表达式是否满足条件来确定下一步该做什么。

MATLAB提供了if语句来进行判断选择

单分支if语句

if条件

语句组

当条件成立时,执行语句组。

执行完后继续执行后续语句。

若条件不成立,直接执行后续语句。

例3每个苹果价格是25,购买量超过5个时,给与20%的折扣。

问买10个苹果需要多少钱?

apples=10;

%苹果的数目

cost=apples*25;

%不打折扣时购买苹果的费用

ifapples>

5

cost=(1-20/100)*cost;

%购买量超过5个时,给与20%的折扣

cost

双分支if语句

语句组1

else

语句组2

当条件成立时,执行语句组1,否则执行语句组2。

语句组1或语句组2执行后,再执行后续语句。

例4计算分段函数:

x=input('

请输入x的值:

ifx==10

y=cos(x+1)+sqrt(x*x+1);

y=x*sqrt(x+sqrt(x));

y

当使用键盘输入数据时,可以使用input函数,常用的格式有两种:

v=input('

message'

)将键入的内容赋给变量v。

可以输入数值、字符串、元胞数组等各种形式的数据

'

s'

)将键入的内容作为字符串赋给变量v。

即,不管输入什么,总是以字符串的形式赋给变量v

是将显示在屏幕上的字符串,是必不可少的

多分支if语句

if条件1

elseif条件2

……

elseif条件m

语句组m

语句组n

分支语句

switch开关表达式

case表达式1

case表达式2

case表达式m

otherwise

语句组m+1

switch语句将根据开关表达式的取值不同,分别执行不同的语句。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 药学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1