欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > Day11_0.1基础学习MATLAB学习小技巧总结(11)——程序流程控制2

Day11_0.1基础学习MATLAB学习小技巧总结(11)——程序流程控制2

2024/12/26 5:29:34 来源:https://blog.csdn.net/qq_47248729/article/details/141753804  浏览:    关键词:Day11_0.1基础学习MATLAB学习小技巧总结(11)——程序流程控制2

利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。

素材来源“数学建模清风”

特此说明:本博客的内容只在于总结在使用matlab中的一些小技巧,并非教程,若想系统的学习MATLAB,也可以移步去链接中的视频,观看学习。也欢迎各位在留言区补充,纠错,讨论。

原素材和学习视频地址:MATLAB教程新手入门篇(上部分)(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili

循环语句

循环是一个将某个计算重复多次的结构。循环的每一次重复就是一遍循环的执行(pass)过程。MATLAB中有两类明确的循环:for循环,在事先知道执行循环次数时使用;while循环,当循环过程必须满足指定条件才终止时使用,因此事先并不知道所执行循环的次数。

1 for-end循环

for-end循环的语法如下:

for 循环变量 = m:s:n %向量或者矩阵循环体
end

在循环中,循环变量适用于迭代的变量名,它会在每次循环迭代中从向量或矩阵中去处一列的值。数值向量或者矩阵则表示了循环变量可以取值的范围,通常根据实际需要事先给定。

表达式 m:s:n为循环变量赋予一个初始值m,这个循环变量是按值s(也被称为步进值或递增值)进行递增的。在每一次循环执行期间,程序使用循环变量的当前值执行一次循环体。循环过程继续进行,直到循环变量超过终止值为止。例如,在表达式for k=5:10:36中,最终的k值是35。

for循环的流程图:

例子:

for k = 5:10:35x = k^2
end

循环变量k的初始值为5,并且程序使用循环体x=k^2 ,计算x的值。每一次循环,k都增加10,k增加到35时循环停止计算x的值,因此k的值为5、15、25、35,而x的取值分别为25、225、625、1225,计算完成后,程序end。

注意:
在对循环变量表达式k=m:s:n 使用 for 循环时应遵循以下规则:

(1)步进值s可以是负数。例如,k=10:-2:4可产生k=10、8、6、4.

(2)如果省略s,那么步进值将默认为 1

(3)如果s是一个正数,那么如果m 大于n,语句将不再执行循环

(4)如果s是一个负数,那么如果m小于n,语句将不再执行循环

(5)如果m等于n,语句将只执行一次循环

(6)如果步进值 s不是一个整数,那么舍入错误有可能会导致循环执行的次数与预期的次数有所不同。

2 while-end循环

当循环过程由于满足了一个指定条件而终止时,程序使用 while 循环,并且因此而使用户事先并不知道循环的执行次数。

while-end循环的典型结构如下:

while 逻辑表达式循环体
end

MATLAB首先会测试逻辑表达式的真假。在逻辑表达式中必须包含循环变量。例如,x是语句 whilex~=5中的循环变量。如果逻辑表达式为真,执行语句。要使 while 循环正常运行,必须发生以下两个前提条件:
(1)在执行while 语句之前,循环变量必须有一个值。
(2)语句必须以某种方式改变循环变量的值。

在每一次循环执行期间,程序使用循环变量的当前值执行一次语句。循环继续执行,直到逻辑表达式为假。下图显示了while 循环的流程图。

 例:

已知y(n)= 1+1/2+1/3+1/4+...+1/n,当n最小取多少时,y的值大于10?

y = 1;n = 1;
while y <= 10n = n + 1;y = y + 1/n;
end
disp(n)

y和的初始值都是1,while 后面的表达式是y<=10,即只要当前的y值小于等于10,循环就会继续执行。在循环体内,会更新n和y的值,直到满足 y>10才会退出循环,此时的n就是最小的满足 y>10的 n。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com