mooc刘卫国老师matlab第十二版学习笔记 (专题三)

目录

三、MATLAB程序流程控制

3.1 顺序结构程序

3.1.1 程序和程序设计 

3.1.2程序的三种基本结构

3.1.3 脚本文件和函数文件

3.1.4 文件的建立

3.1.5 顺序结构

         (1)数据输入

         (2)数据的输出

         (3)程序的暂停

 3.2 用if语句实现选择结构

3.2.1 什么是选择结构

3.2.2 单分支if语句

3.2.3 双分支if语句

3.2.4 多分支if语句

3.3 用switch语句实现选择结构

3.4 用for语句实现循环结构

3.4.1 什么是循环结构

3.4.2 for 语句 

3.5 用while语句实现循环结构

3.5.1 while语句

3.5.2 break语句和continue语句

3.5.3 循环的嵌套 

3.6 函数文件的定义与调用

3.6.1 函数文件的基本结构

3.6.2 函数调用

3.6.3 匿名函数 

 3.7 函数的递归调用

3.7.1 函数的嵌套调用

3.7.2 函数的递归调用

3.8 函数参数与变量的作用域

3.8.1 函数参数的可调性

3.8.2 全局变量与局部变量 

总结 


三、MATLAB程序流程控制

3.1 顺序结构程序

3.1.1 程序和程序设计 

 

3.1.2程序的三种基本结构

  • 顺序结构
  • 选择结构
  • 循环结构

3.1.3 脚本文件和函数文件

  • 脚本文件是可在命令行窗口直接执行的文件,也叫命令文件。
  • 函数文件是定义一个函数,不能直接执行,而必须以函数调用的方式来调用它。

3.1.4 文件的建立

  • 用命令按钮创建文件

  • 用edit命令创建

        分别建立脚本文件和函数文件,求两个矩阵的乘积

  •  建立脚本文件f1.m

  • 在命令行窗口运行脚本文件。

  • 建立函数文件f2.m。

  • 在命令行窗口里调用函数文件。

 

3.1.5 顺序结构

         (1)数据输入

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

         (2)数据的输出

        disp(输出项);

         (3)程序的暂停

        pause(延迟秒数)

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

  • 输入原始数据
  • 对原始数据进行处理
  • 输出处理结果


 3.2 用if语句实现选择结构

3.2.1 什么是选择结构

        选择结构又称为分支结构,是根据给定的条件是否成立来决定程序的执行流程。

3.2.2 单分支if语句

  •  当条件结果为标量时,非零表示条件成立,零表示条件不成立。(条件结果尽量使用标量)
  • 当条件结果为矩阵时,如果矩阵为非空,且不包含零元素,则条件成立,否则不成立。

        例如,[1,2;0,4]表示条件时,条件不成立;[1,2;3,4] 表示条件时,条件成立。

3.2.3 双分支if语句

 例1        输入一个整数,若为奇数则输出其平方根,否则输出其立方根。

3.2.4 多分支if语句

例2        输入一个字符,若为大写字母,则输出为其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应数的平方,若为其他字符则原样输出。


3.3 用switch语句实现选择结构

  • 语句格式

  • 执行过程

  • 实列

  • switch 表达式应该是一个其值可以列举的表达式。
  • case结果表为switch表达式的取值,当取值有多个时,用单元数据表示。 

例1        输入一个英文单词,判断它是否以元音字母开头。

 


3.4 用for语句实现循环结构

3.4.1 什么是循环结构

3.4.2 for 语句 

 说明:

  •  for 语句针对向量的每一个元素执行一次循环体。

  • 退出循环之后,循环变量的值就是向量中最后的元素值。 

  • 当向量为空时,循环体一次也不执行。

例子  计算圆周率Π

(1)利用无穷级数展开式求Π的近似值

 

 用向量求和的方法实现程序:

 (2) 利用定积分的近似值求Π的近似值。

 (3)利用蒙特卡洛法求Π的近似值。

for语句更一般的格式为: 

for   循环变量=矩阵表达式

        循环体语句

end

        执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直到各列元素处理循环结束。

 


3.5 用while语句实现循环结构

3.5.1 while语句

 例1        从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。

  •  while语句多用于循环次数不确定的情况,而对于循环次数确定的情况,使用for语句更方便。
  • 针对不同情况可以选择不同的循环语句,但从功能上说两种循环语句可以相互代替。

3.5.2 break语句和continue语句

  • break语句用来跳出循环体,结束整个循环。
  • continue语句用来结束本次循环,接着进行下次是否执行循环的判断。

例2        求[100,200]之间第一个能被21整除的整数。

3.5.3 循环的嵌套 

        如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构。处于内部的循环叫做内循环,处于外部的循环叫做外循环。

例3        用筛选法求某自然数范围内的全部素数。

(注意:质数又称素数。 一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数)


3.6 函数文件的定义与调用

3.6.1 函数文件的基本结构

        function  输出形参表=函数名(输入形参表)

        注释说明部分

        函数体语句

        当有多个形参时,形参之间用逗号隔开,组成形参表。当输出形参多于一个时,应该用方括号括起来,构成一个输出矩阵。

  • 函数文件名通常由函数名再加上扩展名.m组成,函数文件名与函数名也可以不相同。当函数文件名与函数名不相同时,MATLAB将忽略函数名,调用时使用函数文件名。(建议:函数名和函数文件名一样)
  • return 语句表示结束函数的执行。通常,在函数文件中也可以不使用return语句,那么被调用函数执行完成后会自动返回。

        例1        编写函数文件,求半径为r的圆的面积和周长。

3.6.2 函数调用

        调用格式:

        [输出实参表]=函数名(输入实参表)

        在MATLAB命令行窗口调用前面定义的fcircle函数。

3.6.3 匿名函数 

        基本格式:

        函数句柄变量=@(匿名函数输入参数)匿名函数表达式

        @为函数句柄的运算符

        函数句柄变量=@函数名        

        函数名为内部函数或者自定义函数

        例2 

第2问的函数文件f2.m。 

脚本文件mf.m。


 3.7 函数的递归调用

3.7.1 函数的嵌套调用

        如果在一个函数的定义中调用了其他函数这就是函数的嵌套调用。

3.7.2 函数的递归调用

        一个函数调用它自身称为函数的递归调用。

 (1)  直接递归调用

(2)间接递归调用 

例1 利用函数的递归调用,求n!。

函数文件fact.m如下:

在脚本文件a.m中调用函数文件fact.m,求n!。

 在命令行窗口运行命令文件:

例2 Fibonacci 数列定义如下: 

 首先建立函数文件ffib.m。

建立程序文件Untitled 4.m。

运行结果为:


3.8 函数参数与变量的作用域

3.8.1 函数参数的可调性

        nargin:记录输入参数的个数

        nargout:记录输出参数的个数

例子:

 

3.8.2 全局变量与局部变量 

  • 局部变量:在程序中只特定过程或函数中可以访问的变量。
  • 全局变量:所有的函数都可以对他进行存取和修改。

全局变量定义格式:

        global        变量名

例子:

 


总结 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值