MATLAB入门到精通(三)
目录
- 专题三 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文件。
程序文件分为脚本文件和函数文件,其中国脚本文件是可以在命令行窗口直接执行的文件,也叫命令文件。
函数文件是定义一个函数,不能直接执行,必须以函数调用的方式来调用它。
文件的建立
- 用命令按钮创建文件。
用edit命令创建文件
>>edit test
在当前文件夹下创建了一个test.m的文件,输入并打开matlab进行编辑
3.1 顺序结构程序
数据的输入
A=input(“请输入变量A的值”);
数据的输出
disp(输出项)
程序的暂停
pause(延迟秒数)
若要强行终止程序的运行可以使用Ctrl+C命令
3.2 用if语句实现选择结构
单分支if语句
语句格式:
if 条件
语句组
end
当条件是标量时,非0表示条件成立,0表示条件不成立。
当条件是矩阵时,如果矩阵非空且不包含零元素,则条件成立否则不成立
双分支if语句
语句格式:
if 条件
语句组1
else
语句组2
end
多分支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入门到精通(三)相关推荐
- Kali Linux 从入门到精通(三)-入侵系统定制
Kali Linux 从入门到精通(三)-入侵系统定制 定制 网络配置 临时IP地址 dhclient eth0 ifconfig eth0 192.168.11/24 route add defau ...
- C4D致富经典入门到精通(三)
C4D样条曲线创建 C4D基础界面的介绍与常用快捷键: C4D致富经典入门到精通(一) C4D父子关系的理解与创建参数几何体与可编辑对象: C4D致富经典入门到精通(二) C4D样条曲线创建 : ...
- TIT 数字图像处理 原理与实践(MATLAB) 入门教学 实验三 图像平滑与图像锐化
文章目录 数字图像处理 原理与实践(MATLAB) 入门教学 实验三 图像平滑与图像锐化 实验要求 知识点 实验内容 1.采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波,窗口分别采用3 ...
- 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 ...
- MyBatis从入门到精通(三):MyBatis XML方式的基本用法之多表查询
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. 多表查询 上篇博客中,我们示例的 ...
- visual studio 2015 搭建python开发环境,python入门到精通[三]
在上一篇博客Windows搭建python开发环境,python入门到精通[一]很多园友提到希望使用visual studio 2013/visual studio 2015 python做demo, ...
- MATLAB入门学习(三)
我们再来看看矩阵常用的函数,除了上一篇提到的inv还有以下常见命令: det 计算方阵行列式 eig 计算特征值 trace 计算矩阵的迹 norm 计算矩阵的范数或模 orth 正交化 poly 求 ...
- Python入门到精通三天速成第一讲——创建自定义类
class Person:def set_name(self, name):self.name = namedef get_name(self):return self.namedef greet(s ...
- Matlab入门基础_三
绘图 %% 绘图 %{一.二维图形二维绘图的基本命令有plot,loglog,semilogx,semilogy 和polar.它们的使 用方法基本相同,其不同特点是在不同的坐标中绘制图形.plot ...
- Python入门到精通三天速成第三讲——多重继承
前一讲,你肯定注意到了一个有点奇怪的细节:复数形式的 __bases__ .前面说过,你可使用它来获悉类的基类,而基类可能有多个.为说明如何继承多个类,下面来创建几个类. class Calculat ...
最新文章
- svn的代码提交到git服务器_svn服务器代码仓库,数据迁移到git仓库
- 用WDM开发USB驱动程序
- python selenium 文件上传_python+selenium 文件上传
- 最实用的logback讲解(1)
- OpenCV学习笔记之Mat
- java inputtools_Java后台开发常用工具类
- sklearn官网-多分类问题
- dm365工作笔记20130731
- rabbitmq中文教程python版 - Topics
- react中嵌入网页_在网站中添加 React
- IOC容器和Bean的配置
- oracle 基础查询语句
- 考研数学思维导图(数一、数二、数三)
- ​【预测模型】基于粒子群算法优化最小二乘支持向量机实现数据分类matlab代码
- 方正璞华“劳动人事法律自助咨询服务平台”在武汉武昌区投入使用!
- 多种方法在Markdown加入上划线、中划线、下划线
- linux内核tc,Linux 内核流量控制 TC 详解
- 集中式存储与分布式存储
- python 遍历列表中的每个元素 for循环 while循环 迭代器
- 名企笔试真题精选 (六)