MATLAB的循环结构
循环结构有两种基本形式:while 循环和for 循环。两者之间的最大不同在于代码的重复是如何控制的。在while 循环中,代码的重复的次数是不能确定的,只要满足用户定义的条件,重复就进行下去。相对地,在for 循环中,代码的重复次数是确定的,在循环开始之前,我们就知道代码重复的次数了。
while 循环:只要满足一定的条件,While 循环是一个重复次数不能确定的语句块。它的基本形如下
while expression ( 如果expression 的值非零(true),程序将执行代码块(code block),然后返回到while 语句
... 执行。如果expression 的值仍然非零,那么程序将会再次执行代码。直到expression 的值变
... 。。。。code block 为0,这个重复过程结束。当程序执行到while 语句且expression 的值为0 之后,程序将会
... 执行end 后面的第一个语句。)
end
while 循环的伪代码为:
while expr
...
...
...
end
for循环:for 循环结构是另一种循环结构,它以指定的数目重复地执行特定的语句块。For 循环的形式如下
for index = expr
Statement 1 其中index 是循环变量(就是我们所熟知的循环指数),exp 是循环控制表达式。变量index其中index 是循环变量(就
... Body 。。。。。Body 是我们所熟知的循环指数),exp 是循环控制表达式。变量index读取的是数组expr 的行数,然后程序执行循环体 Statement n (loopbody)所以expr 有多少列,循环体就循环多少次。expr 经常用捷径表达式的]方式,即first:incr:last。
end
在for 和end 之前的语句我们称之为循环体。在for 循环运转的过程中,它将被重复的执行。For 循环结构函数如下:
1.在for 循环开始之时,MATLAB 产生了控制表达式
2.第一次进入循环,程序把表达式的第一列赋值于循环变量index,然后执行循环体内的语句。
3.在循环体的语句被执行后,程序把表达式的下一列赋值于循环变量index,程序将再一次执行循环体语句。
4.只要在控制表达式中还有剩余的列,步骤3 将会一遍一遍地重复执行。我们要举大量的例子来说明for 循环的操作。
在这里要注意运算的细节问题:没有必要缩进for 循环的循环体。即使所有语句都左对齐,MATLAB 程序也会识别出这个循环。但缩进循环体能增强代码的可读性,所以建议大家 缩进循环体。
在for 循环中,我们不能随意修改循环指数。循环指数常被用作计算器,如果修改了它们将会导致一些奇怪而难以发现的错误.
在循环执行开始之前,总是要预先分配一个数组,这样能大大增加循环运行的速度。
那种既可以用向量可以解决的问题,也可以用循环解决的问题,最好用向量解决,这是因为向量执行的速度快。
break 和continue 语句: 有两个附加语句可以控制while 和for 循环:break 和continue 语句。break 语句可以中止循环的执行和跳到end 后面的第一句执行,而 continue 只中止本次循环,然后返回循环的顶部。如果break 语句在循环体中执行,那么体的执行中止,然后执行循环后的第一个可执行性语句.
循环嵌套: 一个循环完全出现在另一个循环当中,这种情况经常发生。如果一个循环完全出现在另一个循环当中,我们称这两个循环为带嵌套的循环。
逻辑数组与向量化: MATLAB 有两个基本类型的数据类型:数字型与字符型。数字型数据包括数字,字符型数据包含字符。除这两个数据类型之外,还有第三类数据类:逻辑型。
“逻辑”数据类型在MATLAB 中并不真实存在。其实,它是带特定逻辑属性标准数字型数据类型。逻辑型数组通过所有的关系运算符和逻辑运算符创建。它
们区别于数字型的是在调用whos 命令时,(logical)会出现在类型的后面。
好的编程习惯总结: 1.对于for 循环体总是要缩进两个或更多空格,以增强程序的可读性。
2.在循环体中绝不修改循环指数的值。
3.在循环执行开始之前,总是要预先分配一个数组。这样能大大增加循环运行的速度
4.如果用可能的话,可用逻辑函数选择数组中的元素。如果逻辑数组进行运算,要比循环快得多。
5.如果用可能的话,可用逻辑函数选择数组中的元素。如果逻辑数组进行运算,要比循环快得多。
MATLAB 总结:
break break 语句可以中止循环的执行和跳到end 后面的第一句执行
continue continue 语句只中止本次循环,然后返回循环的顶部。
for 循环 在for 循环中,代码的重复次数是确定的
tic 函数 复位内建计时器
toc 函数 从最后一次调用tic 以秒开始计时
while 循环 while 循环中,代码的重复的次数是不能确定的,只要满足用户定义的条件,重复就进行下去
MATLAB的循环结构的更多相关文章
- matlab中循环的使用
转载自 https://blog.csdn.net/ssure/article/details/30329601 matlab 中的while循环只有 while statement .... end ...
- 循环结构(for、while)
3.4用for语句实现循环结构 什么是循环结构 for语句 1.什么是循环结构? 循环结构又称为重复结构,是利用计算机运算速度快以及能进行逻辑控制的特点来重复执行某些操作.重复执行的部分称为循环体. ...
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- Swift -运算符和循环结构
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #4dbf56 } p.p2 { margin: 0.0px 0. ...
- 浅析PHP中for与foreach两个循环结构遍历数组的区别
遍历一个数组是编程中最常见不过的了,这里跟大家讨论下for和foreach两种方法.用这两种方法执行遍历的场景太多太多了,这里我们只针对以下两个数组作为例子来讨论.所谓管中窥豹,多少能理清一点两者的区 ...
- PHP流程控制之循环结构
计算机程序最擅长的功能之一就是按规定的条件,重复执行某些操作.循环结构可以减少源程序重复书写的工作量,即在给定条件成立时,反复执行某程序段,直到条件不成立为止.给定的条件称为循环条件,反复执行的程序段 ...
- python基础之循环结构以及列表
python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.python IDE的选择 IDE的全称叫做集成 ...
- C语言-循环结构及break、continue
循环结构 --1-- 结构循环 1.1 while循环 1.2 do…while循环 1.3 for循环 --2-- break和continue 2.1 break关键字 2.2 continue关 ...
- 黑马程序员——C语言基础 流程控制 选择结构和循环结构
---恢复内容开始--- Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)流程控制 1> 顺序结构:默认的流程 ...
随机推荐
- <转>MySql 与Oracle区别
http://blog.sina.com.cn/s/blog_61e034d50100k6xn.html 近期突击学习了mysql,应杨毅的邀请,简单比较一下mysql和oracle的差别,不当之处欢 ...
- .NET在WebForm里实现类似WinForm里面TrackBar控件的效果(AJAX Control Toolkit的使用)
WinForm 里面有一个 TrackBar 控件,表示一个标准的 Windows 跟踪条,是类似于 ScrollBar 控件的可滚动控件.用这个控件可以实现很多可以实时调整的功能,比如最常见的音量调 ...
- python 网络编程(五)---DNS域名系统
1.域名系统定义 DNS计算机域名系统由域名服务器和域名解析器组成.通常输入的是网址就是一个域名. 2.域名查询 查询方式包括: 1)正向查询:由域名查找对应的IP(如:www.baidu.com—& ...
- faplayer编译配置经验
最近在做在线m3u8类格式的视频直播应用, 在获取m3u8的文件之后,如果采用Android系统播放器来播,会有各种各样的问题,容易卡死.不连续,也不能自定义一些选项.查找资料以后,决定采用fapla ...
- HDU 3289 Cat VS Dog (二分匹配 求 最大独立集)
题意:每个人有喜欢的猫和不喜欢的狗.留下他喜欢的猫他就高心,否则不高心.问最后最多有几个人高心. 思路:二分图求最大匹配 #include<cstdio> #include<cstr ...
- 题目1043:Day of Week(输入日期与当前日起天数差%7,在做相关星期调整)
题目描述: We now use the Gregorian style of dating in Russia. The leap years are years with number divis ...
- CF390-E. Inna and Large Sweet Matrix(区间更新+区间查询)
题意很好理解,不说了 题解就是每次把值压缩成一维,比如x上,这样就可以求出任意宽度的整个竖条的和. 如这张图,求的是s5-(s1+s3+s7+s9) 因为可以求出一整竖条和一整横条,我们可以求出是s2 ...
- 一步一步学数据结构之n--n(图遍历--深度优先遍历--非递归实现)
前面已经说了图的深度优先遍历算法,是用递归实现的,而在这里就讲一下用非递归实现,需要借助栈: 算法思想: 1. 栈初始化 2. 输出起始顶点,起始顶点改为“已访问”标志,将 ...
- Oracle- 数据库的备份
Oracle中对数据对象和数据的管理,无疑都是使用PL/SQL Developer来进行管理,该工具也提供给我们很多方便.快捷的操作,使得我们不再为Oracle本身丑陋.难用的UI而抱怨.由于我们一般 ...
- 剑指OFFER之第一个只出现一次的字符(九度OJ1283)
题目描述: 在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符. 输入: 输入有多组数据每一组输入一个字符串. 输出: 输出第一个只出现一次的字 ...