




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Hefei University of TechnologyInstitute of Sound and Vibration ResearchMATLAB 程序设计程序设计流程控制语句流程控制语句2回顾和复习回顾和复习 数据类型:数据类型:Matlab事实上把每种类型的数据都作为数组来处理事实上把每种类型的数据都作为数组来处理数组数组逻辑型逻辑型字符型字符型单元型单元型结构体结构体数值型数值型默认默认类型类型节约内存空间节约内存空间3回顾和复习回顾和复习 变量:变量:变量名必须是一个单一的变量名必须是一个单一的词,不能包含空格,命名须符合词,不能包含空格,命名须符合下列规则:下列规则:变量名区
2、分大小写。变量名区分大小写。 pi 和和 Pi 是两个不同的变量。是两个不同的变量。变量名长度不超过变量名长度不超过63个字符,个字符,超过部分将会被忽略。超过部分将会被忽略。变量名必须以字母开始,其后变量名必须以字母开始,其后可以为字母、数字或者下划线,可以为字母、数字或者下划线,不支持其他符号,因为其他符不支持其他符号,因为其他符号在号在 MATLAB 中具有特殊的中具有特殊的意义。意义。4回顾和复习回顾和复习 数学运算、关系运算和逻辑运算数学运算、关系运算和逻辑运算5回顾和复习回顾和复习 基本数学函数的调用:基本数学函数的调用:注意使用小括号注意使用小括号( )6回顾和复习回顾和复习 数
3、组创建、寻址和运算数组创建、寻址和运算 关键点:关键点: 1. 使用方括号使用方括号 2. 同行元素使用空格或逗号分割;不同行元素使用分号分割同行元素使用空格或逗号分割;不同行元素使用分号分割 3. 等差数组使用冒号操作符或等差数组使用冒号操作符或linspace函数创建更为简便,函数创建更为简便, Start_val: Step: Stop_val linspace(Start_val, Stop_val, N) 4. 创建矩阵的特殊函数:创建矩阵的特殊函数:eye, zeros, ones, rand, randn 5. 通过下标寻址数组元素,单下标和双下标,起始值是通过下标寻址数组元素,
4、单下标和双下标,起始值是1 A(1 3 6 8), A(2:3, 3:6), A(:, 2:3), A(1:5,:) 6. 数组运算:运算符有没有点的区别数组运算:运算符有没有点的区别7回顾和复习回顾和复习 脚本文件和函数文件脚本文件和函数文件 脚本文件不需要输入参数,也不输出参数,按照文件中制定的脚本文件不需要输入参数,也不输出参数,按照文件中制定的顺序执行命令顺序执行命令序列。脚本文件适合于小规模运算。序列。脚本文件适合于小规模运算。 g=0: 0.5: 20; %产生一维向量产生一维向量 x=sin(g); % 计算正弦值计算正弦值 y=cos(g); % 计算余弦值计算余弦值 z=x;
5、 y; 脚本文件的运行有两种方式:脚本文件的运行有两种方式: 1. 在命令窗口中键入文件名;在命令窗口中键入文件名; 2. 在在M文件编辑窗口点击文件编辑窗口点击Debug菜单的菜单的Run, 或者使用快捷键或者使用快捷键F5。8回顾和复习回顾和复习 函数文件接受其他数据为输入参数,并且可以返回数据。函数文件接受其他数据为输入参数,并且可以返回数据。 function 输出输出形参形参列表列表= 函数名函数名(输入(输入形参形参列表)列表) %注释说明部分(可选)注释说明部分(可选) 函数体语句函数体语句 (必须)(必须)function s, v=volume (r, h)% r is th
6、e radius of the cylinder% h is the height of the cylinder s=2*r*pi*h + 2*pi*r2; % calculate the surface area v=pi*r2*h; % calculate the volume输出输出实参实参列表列表 = 函数名函数名(输入输入实参实参列表列表)函数的函数的调用格式:调用格式:s, v=volume (1, 1);9回顾和复习回顾和复习 上机题目上机题目: : 编写函数,计算编写函数,计算y=ax2+bx+c的值的值。其中。其中x的取值范围的取值范围是是-6,6。 function y
7、= parabolic_curve (a, b, c, x) y=a* x.2 + b*x + c; 这个函数的这个函数的调用:调用:y = parabolic_curve (1, 2, 3, -6:0.1:6); 或者:或者: a=1; b=2; c=3; x= -6:0.1:6; y = parabolic_curve (a, b, c, x);10顺序结构顺序结构 顺序结构是最简单的程序结构,系统在编译程序时,按照程顺序结构是最简单的程序结构,系统在编译程序时,按照程序的物理位置顺序执行。这种程序容易编制,但是结构单一,序的物理位置顺序执行。这种程序容易编制,但是结构单一,能够实现的功能
8、有限。能够实现的功能有限。脚本:脚本: r=1; h=1; s=2*r*pi*h + 2*pi*r2; v=pi*r2*h; 函数:函数: function s, v=volume (r, h) s=2*r*pi*h + 2*pi*r2; v=pi*r2*h; 11新内容:流程控制新内容:流程控制 判断语句(判断语句(ifelseend) 循环语句循环语句 (for语句)语句) 12流程控制流程控制判断语句判断语句单个选择单个选择 if 表达式表达式 执行代码块执行代码块end 注意注意:语句中的:语句中的end是决不是决不可少的,没有它,在逻辑表可少的,没有它,在逻辑表达式为达式为0时,就找
9、不到继续时,就找不到继续执行程序的入口。执行程序的入口。13流程控制流程控制判断语句判断语句 单个选择单个选择 例子:编写一个函数,在不使用例子:编写一个函数,在不使用abs函数的前提下,计函数的前提下,计算算|x-y| 。 function jdz=absolute_value(x, y) jdz=x-y; if jdzy jdz=x-y; else jdz=y-x; end16流程控制流程控制判断语句判断语句 两个选择两个选择 例子例子2:计算分段函数的值:计算分段函数的值 0 2/ )1ln(0 / )(22xxxxexy function y=subfunc(x) if x=0 y=(
10、x+sqrt(pi)/exp(2); else y=log(x+sqrt(1+x2)/2 end17流程控制流程控制判断语句判断语句 多个选择多个选择 当判断包含多个选择时,采用当判断包含多个选择时,采用elseif 语句语句if 表达式表达式1 执行代码块执行代码块1elseif 表达式表达式2 执行代码块执行代码块2elseif .else 执行代码块执行代码块end可以任意多个可以任意多个18流程控制流程控制判断语句判断语句 多个选择多个选择 例例1:编写函数,满足以下功能:输入一个字符,若为大:编写函数,满足以下功能:输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则
11、写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应的输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则原样输出。数值,若为其他字符则原样输出。 19流程控制流程控制判断语句判断语句 多个选择多个选择function y=zifu(c) if c=A & c=a& c=0& c=0 & n=60 & n=90 & n100 A=优秀优秀else A=输入错误输入错误end21流程控制流程控制循环语句循环语句forfor语句语句 for 语句调用的基本格式如下:语句调用的基本格式如下: f
12、or index = 初值:增量:终值初值:增量:终值 语句组语句组A end 功能:把语句组功能:把语句组A(亦称为循环体)反复执行(亦称为循环体)反复执行N次。循次。循环次数环次数N为:为: N1+(终值终值-初值初值)/增量增量 在每次执行时程序中的在每次执行时程序中的index的值按的值按“增量增量”增加增加 for 语句的循环次数是预先指定的。语句的循环次数是预先指定的。22流程控制流程控制循环语句循环语句forfor语句语句例例1:用:用 for循环求解循环求解 1+2+.+99+100 (只对奇数求和?只对奇数求和?) s=0; for i=1:100 s=s+i; end 注意
13、:注意:当有一个等效的数组方法来解给定的问题时,当有一个等效的数组方法来解给定的问题时,应避免用应避免用forfor循环。循环。 s=sum(1:100);23流程控制流程控制循环语句循环语句forfor语句语句 s=0; for i=1:10000 s=s+1/2(i+2); end 100001221ii例例2:计算:计算 i=1:10000 s=sum(1./2.(i+2); 24流程控制流程控制循环语句循环语句forfor语句语句for 语句的嵌套语句的嵌套 如果一个循环结构的循环体又包括一个循环结构,就称如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构
14、为循环的嵌套,或称为多重循环结构 例子:建立一个例子:建立一个1010阶数组,数组中的每一个元素阶数组,数组中的每一个元素A(i, j)满满足足A(i, j)=1/(i+j-1). for i=1:10 for j=1:10 A(i, j)=1/(i+j-1); end end25流程控制习题流程控制习题if和和for联合使用联合使用 编写程序计算编写程序计算 其中其中x的值为从的值为从-10到到10之间,以之间,以0.5为步长。要求用循环为步长。要求用循环语句实现。语句实现。0 50 5)(33xxxxxf26流程控制习题流程控制习题 x = -10: 0.5: 10; num=length
15、(x); y=zeros(1, num);for i = 1:num if x(i) 0 y(i) = -x(i)3 + 5; else y(i) = x(i)3 + 5; endendfunction y=fx(x) num=length(x); y=zeros(1, num); for i = 1:num if x(i) 0 y(i) = -x(i)3 + 5; else y(i) = x(i)3 + 5; end end27练习题的其他编程方法练习题的其他编程方法重新编写程序,实现重新编写程序,实现1题的功能,但不采用题的功能,但不采用循环语句。循环语句。x = -10: 0.5: 10
16、;y= zeros(1, length(x);id1 = find(x0);y(id2)=x(id2).3 + 5;28流程控制流程控制循环语句循环语句whilewhile语句语句 while while 语句用于将相同的代码块执行多次,但是语句用于将相同的代码块执行多次,但是次数次数并不预先指定并不预先指定,当,当 while while 的条件表达式为真时,执行代的条件表达式为真时,执行代码块,直到条件表达式为假。码块,直到条件表达式为假。 while while 语句的结构为:语句的结构为: while while 表达式表达式 执行代码块执行代码块 end end 29流程控制流程控制
17、循环语句循环语句whilewhile语句语句 例:用循环求解最小的例:用循环求解最小的m m,使其满足,使其满足 s=0; m=0; while (s=10000) m=m+1; s=s+m; endmii11000030流程控制流程控制分支语句分支语句 MATLAB 中的另一种多选择语句为分支语句。分支语中的另一种多选择语句为分支语句。分支语句的结构为:句的结构为:switch 分支语句分支语句 case 条件语句条件语句 执行代码块执行代码块 case 条件语句条件语句1, 条件语句条件语句2, 条件语句条件语句3, . 执行代码块执行代码块 otherwise 执行代码块执行代码块end
18、多个条件时,采用单元数组多个条件时,采用单元数组31流程控制流程控制分支语句分支语句例例1:编写函数计算任意底对数:编写函数计算任意底对数function y=logab(a, b) switch a case exp(1) y = log(b); case 2 y = log2(b); case 10 y = log10(b); otherwise y = log(b)/log(a);end32流程控制流程控制分支语句分支语句例例2:某商场对顾客所购买的商品实行打折销售,标准:某商场对顾客所购买的商品实行打折销售,标准如下如下(商品价格用商品价格用price来表示来表示): price200 没有折扣没有折扣 200price500 3%折扣折扣 500price1000 5%折扣折扣 1000price2500 8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 县审计局经济责任审计中心财务审计员竞聘笔试经典考题含答案
- 机关食堂营养师招聘笔试经典考题含答案
- 2025年发改委遴选公务员笔试题库附答案
- 2025药店转让合同模板
- 文化设施建设造价咨询合同
- 快递分拣优化软件研发协议
- 彩膜机械租赁协议
- 2025铲车租赁合同样本
- 2025典当行汽车抵押合同范本
- 用户资格协议
- 《语文核心素养三年规划》课件
- 大干围码头地块概况
- 企业项目投资与融资模式
- GMP体系文件(手册+程序)
- 执业医师-呼吸系统
- GB 30734-2014消防员照明灯具
- GA/T 1132-2014车辆出入口电动栏杆机技术要求
- GA 1800.5-2021电力系统治安反恐防范要求第5部分:太阳能发电企业
- 池塘内清淤泥施工方案
- 部编(统编)版-小学语文六年级教科书培训-讲座课件
- 1药历20份教学1mck广州市妇女儿童医疗中心
评论
0/150
提交评论