matlab课件-M函数文件matlab课件-M函数文件.docVIP

  • 39
  • 0
  • 约 13页
  • 2017-01-04 发布于贵州
  • 举报

matlab课件-M函数文件matlab课件-M函数文件.doc

matlab课件-M函数文件matlab课件-M函数文件

M文件和函数句柄 MATLAB程序可以由较多的MATLAB指令和多种多样的MATLAB表达式组成,并循着一定的执行次序运行。这种程序的扩展名为m,这就是脚本M文件或函数M文件。 本章系统介绍编写MATLAB程序时最常用到的四种控制结构、M函数文件的构造、主函数、子函数以及匿名函数。最后一节专门叙述函数句柄的创建、观察和调用。 MATLAB控制流 作为一种计算机编程语言,MATLAB提供了多种用于程序流控制的描述关键词(Keyword)。本节只介绍其中最常用的条件控制(if, switch)和循环控制(for, while, continue, break)。MATLAB的这些指令与其它语言相应指令的用法十分相似,因此本节只结合MATLAB给定的描述关键词,对这四种指令进行简要的说明。 if-else-end条件控制 if-else-end指令为程序流提供了一种分支控制,它最常见的使用方式见表6.1-1。 表 6.1-1 if-else-end 分支结构的使用方式 单 分 支 双 分 支 多 分 支 if expr (commands) end if expr (commands1) else (commands2) end if expr1 (commands) elseif expr2 (commands) ……. else (commandsk) end Expr—关系、逻辑运算构成表达式或一般表达式,标量逻辑值(1/0)或逻辑数组(全1控制分支才执行) 当expr给出“逻辑1”时,(commands)指令组才被执行。 当expr给出“逻辑1”时,(commands1)指令组被执行;否则,(commands2) 被执行。 expr1,expr2,… 中,首先给出“逻辑1”的那个分支的指令组被执行;否则,(commandsk)被执行。 该使用方法常被switch-case所取代。 【例6.1-1】已知函数,编写能对任意一组输入x值求相应y值的程序。 (1) function y=exm060101(x) % y=exm060101(x) Function calculate of example 6.1-1 n=length(x); for k=1:n if x(k)-1 y(k)=x(k); elseif x(k)=1 y(k)=exp(1-x(k)); else y(k)=x(k)^3; end end (2)用exm060101命名M程序并存放在当前目录下 (3) x=[-2,-1.2,-0.4,0.8,1,6] y=exm060101(x) x = -2.0000 -1.2000 -0.4000 0.8000 1.0000 6.0000 y = -2.0000 -1.2000 -0.0640 0.5120 1.0000 0.0067 switch-case控制结构 表 6.1-2 switch-case控制结构的使用方式 指 令 格 式 含 义 switch expr case value_1 (commands1) case value_2 (commands2) case value_k (commandsk) otherwise (commands) end expr为根据此前给定变量进行计算的表达式 value_1是给定的数值、字符串标量(或单元数组) 若expr结果与value_1(或其中的单元元素)相等,则执行。 value_k是给定的数值、字符串标量(或单元数组) 若expr结果与value_k(或其中的单元元素)相等,则执行。 该情况是以上的“并”的“补” 若所有case都不发生,则执行该组命令。 【例6.1-2】已知学生的名字和百分制分数。要求根据学生的百分制分数,分别采用“满分”、“优秀”、“良好”、“及格”和“不及格”等表示学生的学习成绩。 clear; for k=1:10 a(k)={89+k};b(k)={79+k};c(k)={69+k};d(k)={59+k}; end; c=[d,c]; % A=cell(3,5); %生成胞元数组 A(1,:)={Jack,Marry,Peter,Rose,Tom}; A(2,:)={72,83,56,94,100}; % for k=1:5 switch A{2,k}

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档