MATLAB程序设计2014PPT课件下载推荐.ppt

上传人:wj 文档编号:7071015 上传时间:2023-05-07 格式:PPT 页数:123 大小:1.47MB
下载 相关 举报
MATLAB程序设计2014PPT课件下载推荐.ppt_第1页
第1页 / 共123页
MATLAB程序设计2014PPT课件下载推荐.ppt_第2页
第2页 / 共123页
MATLAB程序设计2014PPT课件下载推荐.ppt_第3页
第3页 / 共123页
MATLAB程序设计2014PPT课件下载推荐.ppt_第4页
第4页 / 共123页
MATLAB程序设计2014PPT课件下载推荐.ppt_第5页
第5页 / 共123页
MATLAB程序设计2014PPT课件下载推荐.ppt_第6页
第6页 / 共123页
MATLAB程序设计2014PPT课件下载推荐.ppt_第7页
第7页 / 共123页
MATLAB程序设计2014PPT课件下载推荐.ppt_第8页
第8页 / 共123页
MATLAB程序设计2014PPT课件下载推荐.ppt_第9页
第9页 / 共123页
MATLAB程序设计2014PPT课件下载推荐.ppt_第10页
第10页 / 共123页
MATLAB程序设计2014PPT课件下载推荐.ppt_第11页
第11页 / 共123页
MATLAB程序设计2014PPT课件下载推荐.ppt_第12页
第12页 / 共123页
MATLAB程序设计2014PPT课件下载推荐.ppt_第13页
第13页 / 共123页
MATLAB程序设计2014PPT课件下载推荐.ppt_第14页
第14页 / 共123页
MATLAB程序设计2014PPT课件下载推荐.ppt_第15页
第15页 / 共123页
MATLAB程序设计2014PPT课件下载推荐.ppt_第16页
第16页 / 共123页
MATLAB程序设计2014PPT课件下载推荐.ppt_第17页
第17页 / 共123页
MATLAB程序设计2014PPT课件下载推荐.ppt_第18页
第18页 / 共123页
MATLAB程序设计2014PPT课件下载推荐.ppt_第19页
第19页 / 共123页
MATLAB程序设计2014PPT课件下载推荐.ppt_第20页
第20页 / 共123页
亲,该文档总共123页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MATLAB程序设计2014PPT课件下载推荐.ppt

《MATLAB程序设计2014PPT课件下载推荐.ppt》由会员分享,可在线阅读,更多相关《MATLAB程序设计2014PPT课件下载推荐.ppt(123页珍藏版)》请在冰点文库上搜索。

MATLAB程序设计2014PPT课件下载推荐.ppt

前面的要求,m,10000functionm,s=findsum(k)s=0;

m=0;

while(sm1,s1=findsum(145323)m1=539s1=145530无需修改程序,建立M文件,启动MATLAB文本编辑器有3种方法:

菜单操作:

从MATLAB主窗口的【File】菜单中选择【New】菜单项,再选择M-file命令,将出现MATLAB文本编辑器窗口。

命令操作:

在MATLAB命令窗口输入命令edit,启动MATLAB文本编辑器。

命令按钮操作:

单击MATLAB主窗口工具栏上的NewM-File命令按钮,启动MATLAB文本编辑器,M文件的保存,在M文件编译窗口中执行命令“File”/”Save”,并选择一个目录按“确定”就完成了M文件的保存,快捷键为Ctrl+S。

在图表栏目中单击按钮,可同时完成文件的保存和运行,在CommandWindom里可以查看结果。

打开已有的M文件,打开已有的M文件,有3种方法菜单操作:

从MATLAB主窗口的【File】菜单中选择【Open】命令,出现Open对话框,在Open对话框中选中所需打开的M文件。

在MATLAB命令窗口中输入命令“edit文件名”,回车,打开指定M文件。

单击MATLAB主窗口工具栏上的OpenFile命令按钮,从弹出的对话框中选择所需打开的M文件。

M文件的运行,M文件的运行:

在命令行中输入文件名并按回车后,系统将搜索该文件并逐条执行该文件中的命令。

运行M文件时,要保证所调用的M文件在当前路径下。

可以使用which函数来证实所调用的函数是否在当前路径下。

如所用命令不在当前路径下,可以使用函数addpath来设置路径。

函数文件的基本结构,函数文件由function语句引导,基本结构为:

function输出变量列表=函数名(输入变量列表)注释说明语句段,由%引导函数体语句,函数文件的基本结构,编写函数文件求半径为r的圆的面积和周长functions,p=fcircle(r)%CIRCLEcalculatetheareaandperimeterofacircleofradiir%r-圆半径%s-圆面积%p-圆周长%2012年3月编s=pi*r*r;

p=2*pi*r;

函数文件的基本结构,

(1)函数文件的定义行(FunctionDefineLine)。

函数的定义行表明该M文件是一个函数文件,并且定义了函数名、输入和输出参数。

例:

fcircle.m中的第一行是函数文件的定义行。

其中,functions,p=fcircle(r)function是关键字;

fcircle为函数名;

r为输入参数;

s、p为输出参数。

函数文件的基本结构,函数定义行说明:

输出参数用方括号,无输出可用空括号或无括号和等号。

输入参数用圆括号,参数间用逗号分隔。

函数名的命名规则和变量名的命名规则一样:

必须以字母开头,其余部分可以是字母、数字、下划线。

函数的名称一般要与出现在文件第一行的函数名称相同,如果函数名与文件名不同,必须用文件名引用函数。

函数文件的基本结构,

(2)H1行紧跟函数定义行,以“%”引导的第一注释行。

这一行包括大写的函数文件名和函数功能简要描述,lookfor(查找)命令可以搜索和显示该行。

lookforperimeterfcircle-CIRCLEcalculatetheareaandperimeterofacircleofradiir,(3)帮助正文第一注释行及之后连续的注释行。

通常包括函数输入输出参数的含义及调用格式说明等信息,构成全部在线帮助文本。

只能在命令窗口查看,不可以在MATLABHelp浏览器中显示。

帮助文本遇到之后的第一个非注释行结束,函数中的其他注释行不被显示。

在CommandWindow窗口中运用help命令将显示这部分内容。

helpfcircleCIRCLEcalculatetheareaandperimeterofacircleofradiirr-圆半径s-圆面积p-圆周长,函数文件的基本结构,函数文件的基本结构,(4)函数体函数体包含了所有执行计算和赋值了输出参数的MATLAB程序代码。

这些代码可以是调用函数、流程控制、交互式输入/输出、计算、赋值、注释和空行等。

(5)注释注释语句以符号“%”开头,可以出现在M文件的任何地方,也可以在一行语句的右边。

与在线帮助文本相隔一空行的注释行。

包括函数文件编写和修改的信息,如作者、修改日期、版本等内容,用于软件档案管理。

例:

定义一个函数,并在CommandWindow窗口里调用它。

functionz=f(x,y)z=exp(x.2+y.2);

在CommandWindow窗口中调用该函数如下:

x=3;

y=4;

z=f(x,y)z=7.2005e+010注意:

函数名和文件名要相同,程序控制结构,程序控制模式主要有三大类:

顺序结构、选择结构和循环结构。

顺序结构按程序中语句的排列顺序依次执行,直到程序的最后一个语句,没有分支和跳跃程序中每个语句执行一次,没有重复顺序结构功能单一,常用于赋值和显示输出选择结构是根据给定的条件成立或不成立,分别执行不同的语句。

循环是指按照给定的条件,重复执行指定的语句。

顺序结构,例:

a=1;

b=2;

c=3;

a1=a+ba2=a*ba3=a1*a2-c以程序名shunxu_1保存,运行结果如下:

shunxu_1a1=3a2=2a3=3,顺序结构,例:

a3=a1*a2-c%a3的赋值在a1、a2之前a1=a+ba2=a*b以程序名shunxu_1保存,运行结果如下:

shunxu_2?

Undefinedfunctionorvariablea1.Errorin=shunxu_2at4a3=a1*a2-c,顺序结构,程序中代码后加分号的在运行过程中不会显示运行结果,没加分号的会显示运行结果。

向屏幕输出结果耗时,多数代码加分号。

以%开始的注释行可以出现在函数的任何地方,也可以在一行语句的右边。

数据输入,从键盘输入数据,可以使用input函数调用格式:

A=input(提示信息);

提示信息为字符串,用于提示用户输入什么样的数据,将输入的数值赋给变量A。

A=input(输入A矩阵:

输入A矩阵:

调用格式:

A=input(提示信息,选项);

采用s选项,则允许用户输入一个字符串。

xm=input(Whatsyourname?

s);

数据输出,MATLAB提供的命令窗口输出函数主要有disp函数调用格式:

disp(输出项)其中输出项既可以为字符串,也可以为矩阵。

A=Hello,Tom;

disp(A)Hello,TomA=1,2,3;

4,5,6;

7,8,9;

disp(A)123456789,例:

输入x,y的值,将值互换后输出x=input(Inputxplease.);

y=input(Inputyplease.);

z=x;

x=y;

y=z;

disp(x);

disp(y);

程序以文件名exam6_2保存,运行结果如下:

exam6_2Inputxplease.12,3,43,4;

43,6,3,-54Inputyplease.1:

8123456781234344363-54,程序的暂停,暂停程序的执行使用pause函数调用格式:

pause(延迟秒数)如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行。

若要强行中止程序的运行可使用Ctrl+C命令。

选择结构是根据给定的条件成立或不成立,分别执行不同的语句。

实现选择结构的语句有if语句、switch语句和try语句。

(1)单分支if语句的调用格式:

if条件语句组end,选择结构,例:

判断a是否为0。

functiony=ifzero(a)%判断a是否为0ifa=0disp(a=0);

enddisp(end)运行结果如下:

ifzero(0)a=0endifzero(3)end,双分支if语句:

ifelseend程序结构如下:

if条件语句组1else语句组2end,选择结构,例:

返回ab中较大的数值functiony=bigger(a,b)ifabdisp(biggerisa)y=a;

elsedisp(biggerisb)y=b;

end运行结果如下:

bigger(5,6)biggerisbans=6bigger(6,5)biggerisaans=6,多分支if语句:

ifelseifelseend程序结够如下:

if条件1语句组1elseif条件2语句组2elseif条件3语句组3elseif条件m语句组melse语句组nend,选择结构,例:

输入一个字符,若为大写字母,输出为对应的小写字母;

若为小写字母,输出其对应的大写字母;

若为数字字符,则输出其对应的数值;

若为其它字符,则原样输出。

c=input(请输入一个字符,s);

ifc=Aend,运行结果如下exam6_4请输入一个字符Qqexam6_4请输入一个字符eEexam6_4请输入一个字符66exam6_4请输入一个字符,例:

判断奇偶数n=input(inputn:

ifnjudgeoddinputn:

4Inputisanevenjudgeoddinputn:

-7Inputmustbepositive,选择结构,switch语句:

根据表达式的取值不同,分别执行不同的语句其语句格式为:

switch表达式case表达式1语句组1case表达式2语句组2case表达式m语句组motherwise语句组nend,switch子句后面的表达式应为一个标量或一个字符串;

case子句后面的表达式不仅可以为一个标量或一个字符串,还可以为一个单元矩阵。

如果case子句后面的表达式为一个单元矩阵,则表达式的值等于该单元矩阵中的某个元素时,执行想要的语句组。

和C语言的区别当开关表达式的值等于某表达式,执行该语句后结束该结构,不用break当需要在开关表达式满足若干个表达式之一时执行某一程序段,则用单元形式(用大括号把这些表达式括起来,用逗号分隔)otherwise语句,不是C语言中的default(但与之等价)程序的执行结果和各个case顺序无关case语句中条件不能重复,否则列在后面的条件将不能执行,例:

输入数值,显示结果input_var=input(请输入数值:

)switchinput_varcase1disp

(1)case2,3,4disp(2or3or4)case5disp(5)otherwisedisp(somethingelse)end,以程序名switch_1保存,运行结果如下:

switch_1请输入数值:

4input_var=42or3or4switch_1请输入数值:

1input_var=11switch_1请输入数值:

5input_var=55switch_1请输入数值:

7input_var=7somethingelse,例:

判断a是否等于10,5,0functionswitchbreak(a)switchacase10disp(a=10)case5disp(a=5)case5disp(a=0)otherwisedisp(a!

=0510)end以程序名switchbreak保存,运行结果如下:

switchbreak(5)a=5,某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):

price200没有折扣200price5003%折扣500price10005%折扣1000price25008%折扣2500price500010%折扣500014%折扣输入所售商品价格,求其实际价格,price=input(请输入商品价格:

switchfix(price/100)case0,1rate=0;

case2,3,4rate=3/100;

casenum2cell(5:

9)rate=5/100;

casenum2cell(10:

24)rate=8/100;

casenum2cell(25:

49)rate=10/100;

otherwiserate=14/100;

endprice=price*(1-rate),以程序名exam6_5保存,运行结果如下:

exam6_5请输入商品价格:

400price=388exam6_5请输入商品价格:

2600price=2340,try语句:

首先试探性执行语句1,若执行过程中有错,将错误信息赋给保留的lasterr变量,并终止这段语句的执行,转而执行语句2。

try语句组1catch语句组2end应将不保险但快的算法放在语句1,保险的放在语句2;

或语句2说明语句1失效原因。

试探结构,例:

矩阵乘法运算要求两矩阵的维数相容,否则会出错。

先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。

A=123;

456;

B=789;

101112;

tryC=A*B;

catchC=A.*B;

endClasterr,C=71627405572ans=Errorusing=mtimesInnermatrixdimensionsmustagree.,特点:

这种语言结构提供了更灵活的编程方法,在一个程序里,当某一解法对一个问题行不通时,可以尝试其他解法。

试探结构,循环结构,循环是指按照给定的条件,重复执行指定的语句。

MATLAB提供了两种实现循环结构的语句:

for语句和while语句。

for循环语句:

用来执行循环次数已知的情况调用格式:

for循环变量=表达式1:

表达式2:

表达式3循环体end其中:

表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。

步长为1时,表达式2可以省略。

for循环结构,for循环结构,一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。

输出全部水仙花数。

form=100:

999;

%循环变量可以是任何matlab变量,一般为i、j、km1=fix(m/100);

%求m百位数字m2=rem(fix(m/10),10);

%求m十位数字m3=rem(m,10);

%求m个位数字ifm=m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endend,for循环结构,以程序名exam6_7保存,运行结果如下:

exam6_7153370371407,for循环结构,for循环示例:

n=10;

fori=1:

ny(i)=i;

endyy=12345678910,for循环结构,当用一个等效的数组来解决给定问题时,应避免用for循环,例如,上例可以重写为i=1:

10;

y=iy=12345678910两种方法得出的结果相同,只是后者执行的更快、更直观,输入的内容更少,已知当n=100时,求y的值。

程序如下:

y=0;

n=100;

ny=y+1/(2*i-1);

endy输出结果是:

y=3.2843,采用循环语句会降低其执行速度,通常由下面的程序来代替:

i=1:

2:

2*n-1;

y=sum(1./i);

y,在for循环中,可以将一个向量赋值给循环变量k=0:

fori=kx(a)=i3;

a=a+1;

end以程序名examfor保存,运行结果如下:

examforaa=7kk=0246810xx=08642165121000,for循环结构,for语句的循环变量可以是一个列向量。

for语句更为一般的格式为:

for循环变量=矩阵表达式循环体语句end执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。

s=0;

a=12,13,14;

15,16,17;

18,19,20;

21,22,23;

fork=as=s+k;

enddisp(s);

该程序的功能是求矩阵各列元素之和,执行结果是:

39485766,while循环语句:

用于事先不能确定循环次数的情况。

while表达式循环体end注:

利用break语句,可在任何时候终止循环(while循环或者for循环)。

循环结构,While循环示例:

k=10;

while(k=0)k=k-2;

endkk=-2k=-2时结束循环,从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们的和。

sum=0;

cnt=0;

val=input(Enteranumber(endin0):

whileval=0sum=sum+val;

cnt=cnt+1;

endifcnt0summean=sum/cntend,以程序名exam6_8保存,运行结果如下:

exam6_8Enteranumber(endin0):

1Enteranumber(endin0):

2Enteranumber(endin0):

3Enteranumber(endin0):

4Enteranumber(endin0):

5Enteranumber(endin0):

6Enteranumber(endin0):

7Enteranumber(endin0):

8Enteranumber(endin0):

9Enteranumber(endin0):

0sum=45mean=5,例:

用循环求解s=0;

100s=s+i;

ends=0;

i=1;

while(isum(1:

100)ans=5050例:

用循环求解求最小的ms=0;

while(s=10000),m=m+1;

s=s+m;

end,s,m%求出的m即是所求ans=10011141,例:

求tic,s=0;

100000,s=s+1/2i+1/3i;

end;

tocElapsedtimeis0.147118seconds.tic,i=1:

100000;

s=sum(1./2.i+1./3.i);

toc向量化所需时间少Elapsedtimeis0.138575seconds.i=1:

s=1./2.i+1./3.i,ss=sum(1./2.i+1./3.i)s=0.83330.36110.16200.07480.03540.01700.00830.00410.00200.0010ss=1.4990,continue语句,continue语句一般用在for或while循环里,其功能是直接进入下一次循环,不执行本次循环体余下的语句。

计算一个M(shunxu_1.m,如下所示)文件里代码的行数,不包括空行和注释行。

%a1=a+ba2=a*ba3=a1*a2-c,程序内容如下:

fid=fopen(shunxu_1.m,r);

%打开文件count=0;

whilefeof(fid)%当没有到文件末尾line=fgetl(fid);

ifisempty(line)|strncmp(line,%,1)%如果是空行或注释行continue%跳出本次循环endcount=count+1;

endfclose(fid)%关闭文件disp(sprintf(%dlines,count);

以文件名exam6_12保存,运行结果如下:

exam6_125lines,break语句,break语句用来结束for或while循环,当循环遇到break语句时跳出循环,接着执行循环外面的语句。

读取文件内容到字符串s中,直到第一个空行截止,并将s的内容显示出来。

程序代码为:

%打开文件s=;

whilefeof(fid)line=fgetl(fid);

ifisempty(line)%遇到第一个空行break%跳出循环ends=strvcat(s,line);

%读到字符数组s里endfclose(fid)%关闭文件disp(s)%显示字符数组,break语句,以程序名exam6_11保存,运行结果如下:

exam6_11a=1;

在嵌套循环里,break只能跳出所在循环体的循环。

用循环求解求最大的ms=0;

10000s=s+i;

ifs10000,break;

endendii=141,例子,求100,200之间第一个能被21整除的整数。

forn=100:

200ifrem(n,21)=0continueendbreakenddisp(n)以文件名exam6_10保存,运行结果如下:

exam6_10105,循环嵌套,若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,求1,500之间的全部完数

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2