目录

  • 专题三 MATLAB程序流程控制
    • 3.1 顺序结构程序
    • 3.2 用if语句实现选择结构
    • 3.3 用switch语句实现选择结构
    • 3.4 用for语句实现循环结构
    • 3.5 用while语句实现循环结构
    • 3.6 函数文件的定义与调用
    • 3.7 函数的递归调用
    • 3.8 函数参数用与变量的作用域

专题三 MATLAB程序流程控制

在MATLAB中,程序文件的扩展名为.m,所有程序文件也成为m文件。

程序文件分为脚本文件和函数文件,其中国脚本文件是可以在命令行窗口直接执行的文件,也叫命令文件。

函数文件是定义一个函数,不能直接执行,必须以函数调用的方式来调用它。

文件的建立

  1. 用命令按钮创建文件。

  1. 用edit命令创建文件

    >>edit test
    

    在当前文件夹下创建了一个test.m的文件,输入并打开matlab进行编辑

3.1 顺序结构程序
  1. 数据的输入

    A=input(“请输入变量A的值”);

  2. 数据的输出

    disp(输出项)

  3. 程序的暂停

    pause(延迟秒数)

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

3.2 用if语句实现选择结构
  1. 单分支if语句

    语句格式:

    if 条件

    ​ 语句组

    end

    当条件是标量时,非0表示条件成立,0表示条件不成立。

    当条件是矩阵时,如果矩阵非空且不包含零元素,则条件成立否则不成立

  2. 双分支if语句

    语句格式:

    if 条件

    ​ 语句组1

    else

    ​ 语句组2

    end

  3. 多分支if语句

    语句格式:

    if 条件1

    ​ 语句组1

    else if 条件2

    ​ 语句组2

    ……

    elseif 条件m

    ​ 语句组m

    else

    ​ 语句组n

    end

3.3 用switch语句实现选择结构

语句格式:

switch 表达式

​ case 结果表达式1

​ 语句组1

​ case 结果表达式2

​ 语句组2

​ ……

​ case 结果表达式m

​ 语句组m

​ otherwise

​ 语句组n

end

switch表达式应该是一个其值可以列举的表达式

case结果表为switch表达式的取值,当取值有多个时,用单元数据表示。

3.4 用for语句实现循环结构

格式:

​ for 循环变量=表达式1:表达式2:表达式3

​ 循环体语句

​ end

表达式1的值为初值,表达式2的值为步长,表达式3的值为终值

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

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

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

按照MATLAB的定义,for语句的循环变量也可以是一个列向量,其格式为:

for循环变量=矩阵表达式

​ 循环体语句

end

3.5 用while语句实现循环结构

格式:

while 条件

​ 循环体语句

end

break和continue语句:

break语句用来跳出循环体,结束整个循环。

continue语句用来结束本次循环,接着进行下一次是否执行循环的判断。

循环的嵌套

如果一个循环结构的循环体又包含一个循环结构,就称为循环的嵌套,或称为多重循环结构。

3.6 函数文件的定义与调用

函数文件的基本结构

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

注释说明部分

函数体语句

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

函数文件名通常由函数名再加上扩展名m组成,函数文件名与函数名也可以不相同。

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

function [s,p]=fcircle(r)
s=pi*r*r;
p=2*pi*r;

函数调用

调用格式:

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

在调用函数时,函数输入输出参数称为实际参数,简称实参。

我们在MATLAB命令行窗口调用前面的fcircle函数

>>[s,p]=fcircle(10)

匿名函数

基本格式:

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

函数句柄变量相当于这个匿名函数的别名,@是创建这个句柄函数的运算符

除了可以给函数表达式定义函数句柄,我们也可以给已存在的函数定义函数句柄,并利用函数句柄来调用函数。

3.7 函数的递归调用

如果在一个函数的定义中调用了其他函数,这就是函数的嵌套调用,如果调用的函数是自己本身称为函数的递归调用。

  • 直接递归调用

    在一个函数中直接调用这个函数本身

  • 间接递归调用

    通过嵌套调用其他函数,在其他函数中又调用这个函数本身

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

函数参数的可调性

在调用函数时,MATLAN有两个预定义变量:

nargin:输入实参的个数

nargout:输出实参的个数

局部变量:在程序中只在特定过程或函数中可以访问的变量

全局变量:作用域是整个MATLAB工作空间,也就是全程有效,所有的函数都可以对它进行存取和修改

全局变量定义格式:global 变量名

MATLAB入门到精通(三)相关推荐

  1. Kali Linux 从入门到精通(三)-入侵系统定制

    Kali Linux 从入门到精通(三)-入侵系统定制 定制 网络配置 临时IP地址 dhclient eth0 ifconfig eth0 192.168.11/24 route add defau ...

  2. C4D致富经典入门到精通(三)

    C4D样条曲线创建 C4D基础界面的介绍与常用快捷键:  C4D致富经典入门到精通(一) C4D父子关系的理解与创建参数几何体与可编辑对象: C4D致富经典入门到精通(二) C4D样条曲线创建 :  ...

  3. TIT 数字图像处理 原理与实践(MATLAB) 入门教学 实验三 图像平滑与图像锐化

    文章目录 数字图像处理 原理与实践(MATLAB) 入门教学 实验三 图像平滑与图像锐化 实验要求 知识点 实验内容 1.采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波,窗口分别采用3 ...

  4. jQuery 1.3 for Asp.Net、 CSLA.Net 3.6 for Windows 及 MOSS/WSS 一步一步从入门到精通三个系列的目录...

    jQuery for Asp.Net 一步一步从入门到精通(附 jQuery API 彩色大图) CSLA.Net 3.6 for Windows (C# 2008)一步一步从入门到精通 MOSS/W ...

  5. MyBatis从入门到精通(三):MyBatis XML方式的基本用法之多表查询

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. 多表查询 上篇博客中,我们示例的 ...

  6. visual studio 2015 搭建python开发环境,python入门到精通[三]

    在上一篇博客Windows搭建python开发环境,python入门到精通[一]很多园友提到希望使用visual studio 2013/visual studio 2015 python做demo, ...

  7. MATLAB入门学习(三)

    我们再来看看矩阵常用的函数,除了上一篇提到的inv还有以下常见命令: det 计算方阵行列式 eig 计算特征值 trace 计算矩阵的迹 norm 计算矩阵的范数或模 orth 正交化 poly 求 ...

  8. Python入门到精通三天速成第一讲——创建自定义类

    class Person:def set_name(self, name):self.name = namedef get_name(self):return self.namedef greet(s ...

  9. Matlab入门基础_三

    绘图 %% 绘图 %{一.二维图形二维绘图的基本命令有plot,loglog,semilogx,semilogy 和polar.它们的使 用方法基本相同,其不同特点是在不同的坐标中绘制图形.plot ...

  10. Python入门到精通三天速成第三讲——多重继承

    前一讲,你肯定注意到了一个有点奇怪的细节:复数形式的 __bases__ .前面说过,你可使用它来获悉类的基类,而基类可能有多个.为说明如何继承多个类,下面来创建几个类. class Calculat ...

最新文章

  1. svn的代码提交到git服务器_svn服务器代码仓库,数据迁移到git仓库
  2. 用WDM开发USB驱动程序
  3. python selenium 文件上传_python+selenium 文件上传
  4. 最实用的logback讲解(1)
  5. OpenCV学习笔记之Mat
  6. java inputtools_Java后台开发常用工具类
  7. sklearn官网-多分类问题
  8. dm365工作笔记20130731
  9. rabbitmq中文教程python版 - Topics
  10. react中嵌入网页_在网站中添加 React
  11. IOC容器和Bean的配置
  12. oracle 基础查询语句
  13. 考研数学思维导图(数一、数二、数三)
  14. ​【预测模型】基于粒子群算法优化最小二乘支持向量机实现数据分类matlab代码
  15. 方正璞华“劳动人事法律自助咨询服务平台”在武汉武昌区投入使用!
  16. 多种方法在Markdown加入上划线、中划线、下划线
  17. linux内核tc,Linux 内核流量控制 TC 详解
  18. 集中式存储与分布式存储
  19. python 遍历列表中的每个元素 for循环 while循环 迭代器
  20. 名企笔试真题精选 (六)

热门文章

  1. java 反编译 知识学习汇总 java网络爬取网页代码
  2. LumaQQ开发文档
  3. csgo自建局域网服务器,csgo怎么创建局域网游戏
  4. C# 机房重构——VS2017中没有报表控件(ReportView)
  5. html右下角的广告特效,用jQuery实现网页右下角弹出广告效果
  6. Ae:时间轴面板(图层控制区)
  7. 社会工程学部分攻击经典方法总结
  8. 文章原创度检测工具哪个最好用?怎么操作是最好的?
  9. EAX寄存器(关键跳,关键CALL)
  10. 数字逻辑电路—全减器的实现