数学建模----MATLAB----for&&while循环(进阶)

这篇具有很好参考价值的文章主要介绍了数学建模----MATLAB----for&&while循环(进阶)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.for循环的运用

(1)求和计算

(2)闰年的判断

(3)斐波那契数列的计算

(4)一列数的5个数据一样,删除,5个数据不一样,就保留下来;

2.while循环

(1)基本语法

(2)条件断点的设置

(3)斐波那契数列

(4)循环注意事项

3.循环里面的break&&continue

(1)break语句

(2)continue语句


1.for循环的运用

(1)求和计算

matlab用for循环求斐波那契数列,数学建模,matlab

利用for循环求和,设置求和变量和循环变量:

matlab用for循环求斐波那契数列,数学建模,matlab

我们可以打印出来每次计算的结果:

matlab用for循环求斐波那契数列,数学建模,matlab

这个双重循环就可以把每次计算的结果打印出来;

(2)闰年的判断

matlab用for循环求斐波那契数列,数学建模,matlab

mod是求余函数,count作为一个计数器,每次遇到符合条件的数字,就会加上1,最后得到9999个数字里面,闰年的个数;

(3)水仙花数的打印输出

matlab用for循环求斐波那契数列,数学建模,matlab

水仙花数就是每个数位上面数字的立方等于这个数字本身的数字,我们需要得到一个数字每个数位上面的数字,这个就要用到除数/求余函数(floor函数是求商,mod是求余数;

这2个函数,floor里面的是斜杠,mod里面的是逗号,最后我们把符合条件的水仙花数添加到我们的空向量S里面;

对于拿到一个数字每个数位上面的数,我们还有其他的方法,这个就要用到字符串的相关知识,我们这里只是认识一下,后面还是会遇到的:

matlab用for循环求斐波那契数列,数学建模,matlab

num2str就是把数字转换成字符串,str2num就是把字符串转换为数字;

我们先随机生成一个数字,然后转换成字符串,字符串进行转置后再转换成数字,就可以取出里面的每一位;

matlab用for循环求斐波那契数列,数学建模,matlab

我们设置temp是一个列向量,temp(1)就是里面的第一个元素,这样就可以使用temp(n)拿到里面的每一个元素,立方之后求和在和num进行比较就可以了;

(3)斐波那契数列的计算

我们这里计算前30项:

matlab用for循环求斐波那契数列,数学建模,matlab

先是生成一个行向量(30个全1),这样我们每次计算的结果放进去就可以覆盖原来的结果了;

因为斐波那契数列的前面2个元素都是1,因此我们的k从3开始算的;

每次计算一个结果放到我们自己定义的向量里面去,这样就可以观察到计算的过程(把分号去掉)

(4)一列数的5个数据一样,删除,5个数据不一样,就保留下来;

matlab用for循环求斐波那契数列,数学建模,matlab

我们首先要随机生成一个矩阵:用来存储符合条件的某几列,arr2=unique(column)这个代码的意思就是unique是一个函数,这个函数的返回值就是这个向量里面唯一的数字,因为这个for循环,我们每一次都是从arr里面取出来一列,也就是说,如果这一列的数字里面的某个数字重复出现的话,我们就会只保留一次,举一个简单的实例:例如我们的column有5个数字2 3 4 5 3,这个行向量的5个数字里面,3出现了两次,经过unique函数的调用以后,arr2这个行向量里面的数字就是2 3 4 5,也就是只剩下了4个数字,这4个数字互不相同,然后我们再去计算这个新的向量的长度,如果他经过了unique函数的调用之后,长度依然是5,就可以表明这个行向量的5个元素是互不相同的,这个里面判断完成之后相当于是进行了一个字符串的拼接,只不过这个里面没有字符串,都是列向量,我们把符合条件的列向量重新放到一个新的向量newarr里面去;

下面还有一种解决方案:利用众数,返回的第一个是众数的具体值,这个我们并不关注(所以在代码里面我是用波浪线进行标识的),我们关注的是出现的次数,如果f=1,也就是说明这个数组里面的众数,也就是出现的次数最多的数字,也就出现了一次,说明这个数组里面的数字各不相同,否则,有任何两个数字是一样的,众数就是2了,这个也是可以进行判断的,最后我们把符合条件的这一列添加到我们新建的空的向量newarr里面去;

matlab用for循环求斐波那契数列,数学建模,matlab

(5)注意事项

1.for语句后面的是空语句,那么循环体一次也不会执行:

这个地方的2:1就是一个空语句,那么在matlab里面就不会把我们的变量x的值10打印出来;

matlab用for循环求斐波那契数列,数学建模,matlab

2.for后面的语句只会在开始的时候使用一次,后续的时候,就算我们进行修改,执行的还是原来的

下面的这个实例,我们企图通过循环体里面的语句,把原来的1~4,全部修改为0,然后进行打印,但是最后输出的结果还是我们原来的1~4;matlab用for循环求斐波那契数列,数学建模,matlab

3.下面我们在循环的时候企图修改变量的值,但是修改后的值会打印输出,原来的向量里面的值还是会打印,这个就是想说明我们尽量不要在循环里面修改变量的值;

matlab用for循环求斐波那契数列,数学建模,matlab

2.while循环

(1)基本语法

判断n最小是多少,1+1/2+1/3+.........+1/n的结果大于10;

matlab用for循环求斐波那契数列,数学建模,matlab

while可以理解为当什么时候的意思,当我们while后面的判断条件是真的时候,就会执行循环,否则就会跳出循环;

我们把每次循环的结果累加到y的上面,当y<=10的时候,就会不断的执行循环体,当y>10就已经符合题意了,while后面的y<=10就是false,所以会跳出循环;

(2)条件断点的设置

设置断点之后右键选择“设置修改条件”;

matlab用for循环求斐波那契数列,数学建模,matlab

设置对应的条件,因为上面我们已经知道了n=12367,所以我们设置mod(n,1000)=0,就是在n能够被1000整除的时候,才会执行这个断点;例如1000,2000,执行12次之后,n就是12000,再执行一次就打于12367了,这个时候就会跳出循环;(这个时候第一次到断点的位置n=1000,我们调试的时候应该训选择继续键,如果我们选择的是步进,就会1000,1001,1002,1003这样就行,如果我们选择继续,就会直接跳转到1000,2000,3000,这样进行下去);

matlab用for循环求斐波那契数列,数学建模,matlab

(3)斐波那契数列

设计程序求斐波那契数列里面,第一个大于99999的数字是多少:

matlab用for循环求斐波那契数列,数学建模,matlab

我们都知道斐波那契数列的前两个数字都是1,后面的一项是前面的两项的求和,我们设置循环的条件是a(n)<99999,符合条件就n加上1,不符合条件就找到了,退出循环;

最后的a是一个1*26的行向量,我们要找的是第一个大于99999的数字,就是a这个行向量的最后一个元素,我们使用a(end)就可以得到最后的一个元素,也就是第一个大于99999的数字;

(4)循环注意事项

while后面并不一定要是n<1000这样的判断表达式,也可以是常数,或者是向量:

matlab用for循环求斐波那契数列,数学建模,matlab

只有后面的常数是非0数字的时候,循环才会继续执行,是0就会跳出循环;

后面的表达式是向量的情况:只有向量的元素都不是0,循环才会执行,向量里面只要有一个元素是0,循环就不会执行;

matlab用for循环求斐波那契数列,数学建模,matlab

我们这个地方是定义了一个2*2的方阵,因为元素是1,2,3,4所以循环可以执行,我们的循环体里面修改向量的元素是0,这个时候循环就不会继续执行,所以刚开始进入循环,修改为0之后不符合循环的条件,直接跳出循环,只会输出一个矩阵;如果刚开始的时候4个元素,1,2,3,4里面的任何一个是0,比如1 2 3 0,或者1,2,0,3有0,循环就不会执行。

3.循环里面的break&&continue

(1)break语句

matlab用for循环求斐波那契数列,数学建模,matlab

还是用这个题目举例子:

matlab用for循环求斐波那契数列,数学建模,matlab

我们在刚开始的时候可以给n设置一个超级大的范围,当使用if语句判断y>10的时候,就会break终止循环;

(2)continue语句

求出1~10里面的奇数:

matlab用for循环求斐波那契数列,数学建模,matlab文章来源地址https://www.toymoban.com/news/detail-852032.html

到了这里,关于数学建模----MATLAB----for&&while循环(进阶)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数学建模-插值算法(Matlab)

    注意:代码文件仅供参考,一定不要直接用于自己的数模论文中 国赛对于论文的查重要求非常严格,代码雷同也算作抄袭 如何修改代码避免查重的方法:https://www.bilibili.com/video/av59423231   //清风数学建模 简单来说是根据已知点进行线性数据预测,但数据太少需要通过数学方

    2023年04月26日
    浏览(40)
  • 数学建模实战Matlab绘图

    二维曲线、散点图 绘图命令: plot( x,y,’line specifiers’,’ PropertyName ’, PropertyValue ) 例子:绘图表示年收入与年份的关系 ‘--r*’:-- 设置线型; r: 设置颜色为红色; * 节点型号 ‘ linewidth ’:设置线宽;‘ markersize ’ :节点大小 常用命令: hold on(off):在一张图上持续绘图

    2024年01月21日
    浏览(36)
  • 数学建模之MATLAB使用

    我们都知道MATLAB里面存在着数值计算和符号计算,但是两者之间到底是怎样的呢? 举一个很简单的例子,我们在高等数学里面的微积分学习时经常求不定积分,也就是原函数,这个过程实际上进行的就是符号运算,我们通过对一些变量字符x等等的运算,最后得出一个表达式

    2024年04月09日
    浏览(45)
  • 数学建模——matlab基本使用

    清除工作区:clear。 清屏:clc。 圆周率表示:pi。 lnx代码化:log(x)。 e^x代码化:exp(x) x代表次数。 sin(x):sin(x);cos(x):cos(x);tan(x):tan(x)  arcsin(x):asin(x);arccos(x):acos(x);arctan(x):atan(x). .*与*的区别:.*代表进行矩阵的数值运算 *代表进行矩阵的运算。(matlab的基本操作对象是矩阵)。

    2024年02月07日
    浏览(34)
  • Matlab数学建模实验题

    (1)用起泡法对10个数由小到大排序.即将相邻两个数比较,将小的调到前头。 (2)有一个4×5矩阵,编程求出其最大值及其所处的位置. (3)编程求 (4)一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下.求它在第10次落地时,共经过多少米?第10次反弹有多高? (

    2024年02月11日
    浏览(43)
  • Matlab数学建模-典型相关分析

    典型相关分析是研究两个多变量(向量)之间之间的线性相关关系,能够揭示出两组变量之间的内在联系。 CCA(典型相关分析) 在一元统计分析中,用相关系数来衡量两个随机变量的线性相关关系,用复相关系数研究一个随机变量与多个随机变量的线性相关关系。然而,这些方

    2024年02月10日
    浏览(46)
  • 数学建模| 线性规划(Matlab)

    线性规划:约束条件和目标函数都是线性的。简单点说,所有的决策变量在目标函数和约束条件中都是一次方。 Matlab函数: 参数解释: func 表示目标函数。 A 表示不等式约束条件系数矩阵,b 表示不等式约束条件常数矩阵。 Aeq 表示等式约束条件系数矩阵,beq 表示等式约束条

    2024年02月07日
    浏览(32)
  • 【数学建模】 MATLAB 蚁群算法

    MATLAB–基于蚁群算法的机器人最短路径规划 * https://blog.csdn.net/woai210shiyanshi/article/details/104712540?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168853912916800215023827%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257Drequest_id=168853912916800215023827biz_id=0utm_medium=distribute.pc_search_result.

    2024年02月15日
    浏览(34)
  • (一)MATLAB数学建模——数据拟合

    目录 一、简介 二、多项式拟合 (一)指令介绍 (二)代码

    2024年02月11日
    浏览(46)
  • 数学建模学习(7):Matlab绘图

    最基础的二维图形绘制方法:plot -plot命令自动打开一个图形窗口Figure; 用直线连接相邻两数据点来绘制图形 -根据图形坐标大小自动缩扩坐标轴,将数据标尺及单位标注自动加到两个坐标轴上,可自定坐标轴,可把x,  y 轴用对数坐标表示 -如果已经存在一个图形窗口,plot命

    2024年02月14日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包