MATLAB程序设计基础_精品文档优质PPT.ppt
《MATLAB程序设计基础_精品文档优质PPT.ppt》由会员分享,可在线阅读,更多相关《MATLAB程序设计基础_精品文档优质PPT.ppt(43页珍藏版)》请在冰豆网上搜索。
eg_moive.m。
n用户可以用任何文本编辑器来对用户可以用任何文本编辑器来对M文件进行编文件进行编辑。
辑。
nM文件的文件的作用作用是:
当用户在命令窗口中输入已是:
当用户在命令窗口中输入已编辑并保存的编辑并保存的M文件的文件名并按下回车键后,文件的文件名并按下回车键后,系统将搜索该文件,若该文件存在,系统将按系统将搜索该文件,若该文件存在,系统将按M文件中的语句所规定的计算任务文件中的语句所规定的计算任务以解释的方以解释的方式逐一执行语句式逐一执行语句,从而实现用户要求的特定功,从而实现用户要求的特定功能。
能。
nM文件又分两类:
命令M文件(命令文件)独立的m文件函数M文件(函数文件)可调用的m文件命令文件:
命令文件:
运行命令文件的效果等价于从Matlab命令窗口中按顺序逐条输入并运行文件的指令。
特点:
可以访问Matlab当前工作空间中的所有变量和数据命令文件中运行过程中创建或定义的变量均被保存在工作空间。
没有输入输出参数因此,命令文件通常作为主程序来设计。
命令文件包括两部分:
注释文件和程序文件命令文件包括两部分:
注释文件和程序文件%RANKNumberoflinearlyindependentrowsorcolumns.%K=RANK(X)isthenumberofsingularvaluesofX%thatarelargerthanMAX(SIZE(X)*NORM(X)*EPS.%K=RANK(X,tol)isthenumberofsingularvaluesofXthat%arelargerthantol.%Copyright(c)1984-94byTheMathWorks,Inc.s=svd(x);
if(nargin=1)tol=max(size(x)*max(s)*eps;
endr=sum(stol);
程序部程序部分分函数文件函数文件也是由Matlab语句(命令行)构成的ASCII码文本文件Matlab用户可以根据需要编辑自己的m文件,它们可以像库函数一样方便的调用,从而极大地扩展了Matlab的能力。
对于某一类特殊问题,如创建了许多m函数文件,则可形成新的工具箱。
这种用Matlab语言创建定义新的Matlab函数的功能,正体现了Matlab语言强大的扩展功能。
函数m文件的格式:
function返回变量=函数名(输入变量)注释说明语句段程序语句段特定规则:
函数m文件第一行必须以单词function作为引导词,必须遵循如下形式:
function=()m文件的文件名必须是.m。
程序中的变量均为局部变量,不保存在工作空间中。
其变量只在函数运行期间有效。
2.m文件的创建与打开文件的创建与打开M文件是一个普通文本文件,它可以用任何编辑程序来建立和编辑,最为方便的是使用Matlab提供的文本编辑器。
1)建立新的)建立新的M文件文件建立新的M文件,启动Matlab文本编辑器有3种方法:
n菜单操作:
从Matlab主窗口的File菜单中选择New菜单项,再选择M-file命令,屏幕上将出现Matlab文本编辑器窗口。
n命令操作:
在Matlab命令窗口输入命令edit,启动Matlab文本编辑器后,输入M文件的内容并存盘。
n命令按钮操作:
单击Matlab主窗口工具栏上的NewM-File命令按钮,启动Matlab文本编辑器后,输入M文件的内容并存盘。
2)打开已有的)打开已有的M文件文件n菜单操作:
从Matlab主窗口的File菜单中选择Open命令,则屏幕出现Open对话框,在Open对话框中选中所需打开的M文件。
在文档窗口可以对打开的M文件进行编辑修改,编辑完成后,将M文件存盘。
在Matlab命令窗口输入命令:
edit文件名,则打开指定的M文件。
单击Matlab主窗口工具栏上的OpenFile命令按钮,再从弹出的对话框中选择所需打开的M文件。
3.Matlab的程序结构的程序结构Matlab的控制语句同c语言有相似之处,但没有c语言复杂、灵活和多变。
因而语法比较简单,容易掌握。
Matlab语言的程序结构与其它高级语言是一致的,分为顺序结构,循环结构,分支结构。
1)顺序结构)顺序结构依次顺序执行程序的条语句n数据的输入数据的输入使用input函数从键盘输入数据,调用格式为:
A=input(提示信息,选项);
其中提示信息为一个字符串,用于提示用户输入什么样的数据。
如果在input函数调用时采用s选项,则允许用户输入一个字符串。
例如,想输入一个人的姓名,可采用命令:
xm=input(Whatsyourname?
s);
BAn数据的输出数据的输出Matlab提供的命令窗口输出函数主要有disp函数,其调用格式为:
disp(输出项)其中输出项既可以为字符串,也可以为矩阵。
例2:
输入x,y的值,并将它们的值互换后输出。
程序如下:
x=input(Inputxplease.);
y=input(Inputyplease.);
z=x;
x=y;
y=z;
disp(x);
disp(y);
例3求一元二次方程ax2+bx+c=0的根。
a=input(a=?
);
b=input(b=?
c=input(c=?
d=b*b-4*a*c;
x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a);
disp(x1=,num2str(x
(1),x2=,num2str(x
(2);
2)选择结构)选择结构nif语句语句在Matlab中,if语句有4种格式。
(1).单分支if语句当条件成立时,则执行语句组,执行完之后继续执行if语句的后继语句,若条件不成立,则直接执行if语句的后继语句。
表达式语句真语句语句表达式表达式假if(条件表达式条件表达式)语句;
语句;
endif(条件表达式条件表达式)语句;
if(条件表达式条件表达式)语句;
end
(2).if语句的双分支选择结构表达式表达式语句语句1真假语句语句2if(条件表达式条件表达式)语句语句1;
else语句语句2;
end当条件成立时,执行语句组1,否则执行语句组2,语句组1或语句组2执行后,再执行if语句的后继语句。
if语句的双分支形式,在语法上视为一条语句。
例4:
计算分段函数的值。
x=input(请输入x的值:
ifx=0y=(x+sqrt(pi)/exp
(2);
elsey=log(x+sqrt(1+x*x)/2;
end(3).if语句的多分支选择结构表达式表达式1真语句1假表达式表达式2表达式表达式3语句4语句3语句2真真假假先判断表达式先判断表达式1的值的值非非0就执行下面的语句就执行下面的语句为为0就执行下一个判断就执行下一个判断一直这样做下去一直这样做下去直到得出最后结果直到得出最后结果执行过程:
执行过程:
if条件条件1语句组语句组1;
elseif条件条件2语句组语句组2;
elseif条件条件m语句组语句组m;
else语句组语句组n;
end(4).if语句的二层嵌套结构if(表达式表达式1)if(表达式表达式1_2)语句语句1_1;
else语句语句1_2;
endelseif(表达式表达式2_1)语句语句2_1;
else语句语句2_2;
end表达式表达式1_2表达式表达式1表达式表达式1_2语句语句1_1语句语句1_2语句语句2_1语句语句2_2非000非00非0if语句是根据表达式的值是否为0来判断执行哪一分支的,某些情况下,要根据表达式的不同值来判断执行哪一分支,如表达式的值为1,2,3时,分别执行不同的操作。
虽然也可以用多条if语句来完成这一工作,但Matlab语言中提供了一条switch语句,可以更方便的完成。
nswitch语句(开关分支语句)语句(开关分支语句)switch表达式表达式case表达式表达式1语句组语句组1;
case表达式表达式2语句组语句组2;
case表达式表达式m语句组语句组m;
otherwise语句组语句组n;
endswitch表达式语句组1语句组2语句组n语句组.E1E2Endefaultcaseswitch语句根据表达式的取值不同,分别执行不同的语句,其语句格式为:
例6某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):
price200没有折扣200price5003%折扣500price10005%折扣1000price25008%折扣2500price500010%折扣5000price14%折扣输入所售商品的价格,求其实际销售价格。
price=input(请输入商品价格);
switchfix(price/100)case0,1%价格小于200rate=0;
case2,3,4%价格大于等于200但小于500rate=3/100;
casenum2cell(5:
9)%价格大于等于500但小于1000rate=5/100;
casenum2cell(10:
24)%价格大于等于1000但小于2500rate=8/100;
casenum2cell(25:
49)%价格大于等于2500但小于5000rate=10/100;
otherwise%价格大于等于5000rate=14/100;
endprice=price*(1-rate)%输出商品实际销售价格2)循环结构)循环结构重复执行的一组语句nfor语句for(表达式表达式1;
表达式表达式2;
表达式表达式3)循环体语句;
循环体语句;
end1.计算表达式1,通常用于循环开始前设置变量初值。
2.计算表达式2,值为0则结束循环,否则执行第3步。
3.执行循环体语句。
4.计算表达式3,返回第2步。
表达式1表达式2循环体表达式3假真fori=表达式表达式1.表达式为一个向量2.依次将向量的的各元素赋给循环变量3.执行循环体语句,直至向量中各元素处理完毕。
例8:
利用for循环求1!
+2!
+3!
+5!
的值sum=0;
fori=1:
5pdr=1;
fork=1:
ipdr=pdr*k;
endsum=sum+pdr;
end2)循环结构)循环结构重复执行的一组语句nfor语句for(表达式表达式1;
4.计算表达式3,返回第2