版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二讲MATLAB基本编程数学软件一、M文件二、关系运算与逻辑运算三、Matlab程序控制结构四、小结与练习一、M文件用MATLAB语言编写的程序,称为M文件。M文件可以根据调用方式的不同分为两类:命令(脚本)文件(ScriptFile)和函数文件(FunctionFile)。1.脚本M文件MATLAB代码按顺序组成的命令序列集合(命令行的组合)在命令窗口直接输入文件名来运行例1
建立一个文件,将变量a,b的值互换MATLAB(exp201)程序如下:a=1:8;b=[123;456;789];c=a;a=b;b=c;ab2.函数M文件说明:内部函数很多,但也有限,有时为研究某一个函数的各种性态,需要为MATLAB定义新函数,为此必须编写函数文件。函数文件扩展名:*.M格式:function因变量名=函数名(自变量名)必须通过具体的运算获得函数值,并赋给因变量.实现一个单独功能,有参数输入和输出,实现计算中的参数传递,可重复调用。2.函数M文件M文件建立方法:(1).在Matlab中,点:File->New->M-file(2).在编辑窗口中输入程序内容(3).点:File->Save,存盘,M文件名必须与函数名一致。注意:Matlab的应用程序也以M文件保存。例2
定义函数f(x1,x2)=100(x2-x12)2+(1-x1)2functionf=fun(x)f=100*(x(2)-x(1)^2)^2+(1-x(1))^2;1.建立M文件:fun.mMATLAB(fun,exp202)2.可直接使用函数fun.m例如:计算f(1,2),只需在Matlab命令窗口键入命令:x=[1,2];y=fun(x)二、关系运算与逻辑运算
1.关系运算符例3
设矩阵A=[1,2;2,3],求A中等于2的元素个数.MATLAB(exp203)A=[12;23];b=A==2;N=sum(sum(b))2.逻辑运算符例4
观察如下程序运行结果.MATLAB(exp204)A=[1,1;0,1];B=[0,1;0,0];b=0;C1=A&bC2=A|bC3=~AC4=xor(A,B)3.逻辑函数例5
观察如下程序运行结果.MATLAB(exp205)A=[1,3,5];b=[0,3,0];A=[1,2,3;0,4,5];B=[1,0,3;0,0,5];C=[1+2*i,0.6+3*i];D=[‘who’];A1=all(a),A2=all(A),A3=all(A,2),B1=any(b),B2=any(B),B3=any(B,2),K=find(B),[i,j]=find(B),[i,j,v]=find(B)c1=isequal(a,b),c2=isequal(A,B),c3=isnumeric(A),c4=isnumeric(C),c5=isnumeric(D),三、MATLAB程序控制结构三种决策或控制流结构:顺序结构、选择结构、循环结构说明:这些结构经常包含大量的MATLAB命令,故经常出现在MATLAB程序中,而不是直接加在MATLAB提示符下。(一)顺序结构
1.数据的输入从键盘输入数据,则可以使用input函数来进行,该函数的调用格式为:
A=input(提示信息,选项);其中提示信息为一个字符串,用于提示用户输入什么样的数据。如果在input函数调用时采用‘s’选项,则允许用户输入一个字符串。例如,想输入一个人的姓名,可采用命令:xm=input('What''syourname?','s');(一)顺序结构
2.数据的输出MATLAB提供的命令窗口输出函数主要有disp函数,其调用格式为
disp(输出项)其中输出项既可以为字符串,也可以为矩阵。例6
输入x,y的值,并将它们的值互换后输出。MATLAB(exp206)程序如下:
x=input('Inputxplease:');y=input('Inputyplease:');z=x;x=y;y=z;disp(['x=',num2str(x)]);disp(['y=',num2str(y)]);例7
求一元二次方程ax2+bx+c=0的根。MATLAB(exp207)程序如下: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))]);(一)顺序结构
3.程序的暂停暂停程序的执行可以使用pause函数,其调用格式为:
pause(延迟秒数)
如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行。若要强行中止程序的运行可使用Ctrl+C命令。(二)选择结构
1.条件语句(if-else-end)在MATLAB中,if语句有3种格式。(1)单分支if语句:
if条件语句组
end当条件成立时,则执行语句组,执行完之后继续执行if语句的后继语句,若条件不成立,则直接执行if语句的后继语句。(二)选择结构
1.条件语句(if-else-end)(2)双分支if语句:
if条件语句组1else
语句组2end
当条件成立时,执行语句组1,否则执行语句组2,语句组1或语句组2执行后,再执行if语句的后继语句。MATLAB(fun1,fun01,exp208)步骤:一、建立M文件fun1.m定义函数f(x)二、在Matlab命令窗口输入fun1(2),fun1(-1),例8fun1.mfunctionf=fun1(x)ifx<=1f=2*x;elsef=x^2+1;end(二)选择结构
1.条件语句(if-else-end)(3)多分支if语句:
if条件1
语句组1elseif条件2
语句组2……elseif条件m
语句组melse
语句组nend语句用于实现多分支选择结构。步骤:一、建立M文件fun2.m定义函数f(x)二、在Matlab命令窗口输入fun2(2),fun2(0.5),fun2(-1)MATLAB
(fun2,fun3,fun4,exp209)例9fun2.mfunctionf=fun2(x)ifx<=0f=x^3;elseifx<=1f=2*x;elsef=x^2+1;endfun3.mfunctiony=fun3(x)fori=1:length(x)ifx(i)<=0
y(i)=x(i)^3;elseif
x(i)<=1
y(i)=2*x(i);else
y(i)=x(i)^2+1;endendfun4.mfunctionf=fun4(x)ifx<=0f=x.^3;elseifx<=1f=2*x;elsef=x.^2+1;end×(二)选择结构
2.开关语句(switch-case-end)switch语句根据表达式的取值不同,分别执行不同的语句,其语句格式为:
switch表达式
case表达式1
语句组1case表达式2
语句组2……case表达式m
语句组motherwise
语句组nend(二)选择结构
2.开关语句(switch-case-end)注:当表达式的值等于表达式1的值时,执行语句组1,当表达式的值等于表达式2的值时,执行语句组2,…,当表达式的值等于表达式m的值时,执行语句组m,当表达式的值不等于case所列的表达式的值时,执行语句组n。当任意一个分支的语句执行完后,直接执行switch语句的下一句。例10
某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):
price<200没有折扣
200≤price<5003%折扣
500≤price<10005%折扣
1000≤price<25008%折扣
2500≤price<500010%折扣
5000≤price14%折扣输入所售商品的价格,求其实际销售价格。程序如下:MATLAB(exp2010)price=input('请输入商品价格:');switchfix(price/100)case{0,1}%价格小于200rate=0;case{2,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)%输出商品实际销售价格(三)循环结构
1.for循环允许一组命令以固定的和预定的次数重复for语句的格式为:
forx=array{commands}endfor和end语句之间的命令串{commands}按数组(array)中的每一列执行一次。每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:,n)
例11
对n=1,2,…,10,求xn=的值.
MATLAB
(exp2011)程序如下:forn=1:10
x(n)=sin(n*pi/10);endx(三)循环结构
2.While循环与for循环以固定次数求一组命令相反,while循环以不定的次数求一组语句的值。while语句的一般格式为:
whileexpression{commands}end
只要表达式(expression)为真,就执行while和end语句之间的命令串{commands},直到为假,才退出循环。例12:设银行年利率为11.25%。将10000元钱存入银行,问多长时间会连本带利翻一番?
MATLAB
(exp2012)程序如下:money=10000;years=0;whilemoney<20000years=years+1;money=money*(1+11.25/1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年株洲市荷塘区教育系统事业编人员招聘考试备考试题及答案详解
- 2026年四川省内江市教育系统事业编人员招聘笔试参考试题及答案详解
- 2026年河南省三门峡市教育系统事业编人员招聘考试备考题库及答案详解
- 2026年莆田市城厢区教育系统事业编人员招聘考试参考题库及答案详解
- 2026年黑龙江省黑河市医疗系统事业编人员招聘考试备考题库及答案详解
- 2026年珠海市斗门区教育系统事业编人员招聘考试备考题库及答案详解
- 2026年辽阳市文圣区教育系统事业编人员招聘笔试备考试题及答案详解
- 2025年包头市青山区教育系统事业编人员招聘考试试题及答案详解
- 2026年徐州市泉山区教育系统事业编人员招聘笔试备考试题及答案详解
- 2026年西宁市城北区医疗系统事业编人员招聘考试参考题库及答案详解
- 2026年山东将军开元纸业有限公司招聘(13人)笔试模拟试题及答案详解
- 2025年农信社不良资产处置岗招聘考试题库附答案
- 2026年全国高考1卷高考数学真题(教师版)
- A 证(企业主要负责人)考试题库
- 2026年高考英语真题完全解读(全国一卷)(试卷点评)
- 2026年五四制小升初数学测试题及答案
- 体育与健康九年级人教版背越式跳高教案
- 县域经皮冠状动脉介入治疗合理用药与综合管理指南课件
- 2026四川省现代种业发展集团种芯农业有限公司招聘财务人员(会计岗)1人笔试历年常考点试题专练附带答案详解
- 反恐怖防范安全风险评估工作指南(试行)
- 江西省2026年重点学校初一新生入学分班考试试题及答案
评论
0/150
提交评论