Matlab循环语句_matlab中if语句的用法

2022-11-10 19:32:57 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

《matlab循环语句》由会员分享,可在线阅读,更多相关《matlab循环语句(9页珍藏版)》请在人人文库网上搜索。

1、matlab 基本语句1.循环语句forfori=s1:s3:s2循环语句组end解释:首先给i赋值s1;然后,判断i是否介于s1与s2之间;如果是,则执行循环语句组,i=i s3(否则,退出循环.);执行完毕后,继续下一次循环。例:求1到100的和,可以编程如下:sum=0fori=1:1:100sum=sum iend这个程序也可以用while语句编程。注:for循环可以通过break语句结束整个for循环.2.循环语句while例:sum=0;i=1;while(i,=,,然后执行。 实现顺序结构的方法非常简单,只需将程序语句顺序排列即可。 2选择结构 在MATLAB中,选择结构可由两种。

2、语句来实现。 (1)if语句 if语句的最简单用法为: if表达式; 程序模块; end if语句的另一种用法为: if表达式 程序模块1 else 程序模块2 end 例1使用if语句判断学生的成绩是否及格。 程序: clear n=input(输入n=) m=60; ifn,r=不及格 else r=及格 end 练习一:将例1写入M-文件编辑器,然后在commandwindow调用这个程序。 当针对多个条件进行选择时,可以采用下面的格式: if 表达式1程序模块1 elseif表达式2程序模块2 elseif表达式n 程序模块nelse程序模块n 1 end 例2将百分之的学生成绩转换为。

3、五分制输出。 程序: clear n=input(输入n=) ifn=90 chji=优秀 elseifn=80 chji=良好 elseifn=70 chji=中等 elseifn=60 chji=及格 else chji=不及格 end 练习二:将例2写入M-文件编辑器,然后在commandwindow调用这个程序。 (2)switch语句 switch语句可以替代多分支的if语句,而且switch语句简洁明了,可读性更好。其格式为: switch表达式 case数值1 程序模块1 case数值2 程序模块2 otherwise 程序模块n end 其中的otherwise模块可以省略。 。

4、switch语句的执行过程是:首先计算表达式的值,然后将其结果与每一个case后面的数值依次进行比较,如果相等,则执行该case的程序模块;如果都不相等,则执行otherwise模块中的语句。如图3所示。例3用switchcase开关结构将百分制的学生成绩转换为五分制的成绩输出。 程序: clear x=58 switchfix(x/10) case10,9 y=优秀 case8 y=良好 case7 y=中等 case6 y=及格 otherwise y=不及格 end 练习三:将例3写入M-文件编辑器,然后在commandwindow调用这个程序。 3循环结构 循环结构的流程图如图4所示它。

5、可以多次重复执行某一组语句。循环是计算机解决问题的主要手段。在MATLAB中,循环结构可以由两种语句结构实现。 (1)forend 循环结构。其格式为: fori=V,循环体结构,end 其中V为一个行向量,循环变量i每次从V中取一个数值,执行一次循环体的内容,如此下去,直到完成V中的所有分量,就自动结束循环体的执行。 例4计算s=12 22 52。 程序: a=125;s=0; fork=a, s=s k2; end, s, 该例题只是为了说明for语句的格式,事实上,用下面的语句求和更为简单。 命令: p=sum(a.2) 练习四:建立MATLAB与word的连接,在新建的m-book中写。

6、入上面的程序,并用notebook菜单运行之。 循环结构里面还可以包含循环结构,形成多重循环。 例5设计一个九九乘法表。 程序: clear fori=1:9 forj=1:9 a(i,j)=i*j; end enda, 练习五:直接在命令窗编写上面的程序。 试运行下面的程序,并加以分析: 程序:disp(九九乘法表),fori=1:9, forj=1:i,pi(j)=j*i;end,disp(pi),end (2)whileend 循环结构。其格式为: while(表达式) 循环结构体 end 例6求MATLAB的相对精度 解:解题的思路是,让y值不断减小,直到MATLAB分不出1 y与1的。

7、差别为止。 程序: y=1;while1 y1;y1=y;y=y/2;end,y1说明: for循环与while循环的区别是,for语句的循环次数是确定的,而while语句的循环次数是不确定的。 一定要注意在循环结构体内设置“修改条件表达式的语句”,以免进入“死循环”。 一旦出现死循环,在命令窗用ctrl c可使程序中止。 注意程序的可读性。 练习六:在M-文件编辑器内编写上面的脚本文件,并利用菜单或快捷按钮运行之。 三、M-文件 M文件是包含MATLAB代码的文件。M文件按其内容和功能可分为脚本M文件和函数M文件这两大类。 1、脚本M文件 脚本M文件是许多MATLAB代码按顺序组成的命令集合。

8、,不接受参数的输入和输出,与MATLAB工作区共享变量空间。脚本文件一般用来实现一个相对独立的功能,比如对某个数据集进行某种分析、绘图,求解方程等等。 前面的几个例题都是脚本文件的类型。 2、函数M文件 MATLAB的M-函数是由function语句引导的,其基本格式如下: function输出形参列表=函数名(输入形参列表) 注释说明语句段,由%引导; 函数体语句 函数文件需要在M-文件编辑器中编写。写完以后,按照当前的搜索路径保存。以后就可以随时调用这个函数了。 与脚本M文件不同的是,调用函数M文件时需要输入自变量的实际值。 随便打开一个M-文件看一看: openlsqlin 编程实例 例。

9、7.定义一个函数f(x)=sin(x)2,其中x以“度”为单位。然后再调用该函数。 解:在M-文件编辑器内写入下面的文件: functiony=sinsd(x) %自变量x以“度”为单位。 % %白城师院 %数学建模协会,2007-5-12 a=x/180*pi; y=sin(a).2; 将上面的文件保存之后即可随时调用。 命令: t=sinsd(45) t= 0.5000 命令: helpsinsd 命令: t=sinsd(45,60) t= 0.50000.7500 表明该函数对元素群运算有效。上面的语句相当于 命令: x=45,60;t=sinsd(x) t= 0.50000.7500 。

10、命令: x=45,60;30,90;f=sinsd(x) f= 0.50000.7500 0.25001.0000 将源文件中最后一行的“.”去掉,再运行以上两条命令,我们会发现什么?例8.在MATLAB中,一个函数可以调用其它函数,也可以调用自身,即递归调用。下面利用递归算法编写一个函数,用来计算Fibonacci数列的第k项。 Fibonacci数列: 1,1,2,3,5,8,13,21, M-函数文件: functiona=my_fibo(k) ifk=1|k=2,a=1; else,a=my_fibo(k-1) my_fibo(k-2);end 将这个文件写入M-文件编辑器并以名称“m。

11、y_fibo.m”保存,以后就可以调用这个函数。 递归算法无疑是解决某一类问题的有效方法,但不宜滥用,因为它的运算速度往往很慢。 命令: tic,n=my_fibo(26),toc n= 121393 elapsed_time= 34.4290 下面我们尝试用一般的循环语句来求解这个问题。 程序: tic,n=1,1;fork=3:100,n(k)=n(k-1) n(k-2);end,toc, elapsed_time= 0.0100 命令: n(1:26) ans= Columns1through81123581321 Columns9through163455891442333776109。

12、87 Columns17through24159725844181676510946 177112865746368 Columns25through2675025121393 例9.可变输入变量个数的函数 MATLAB提供的conv()函数可用来求两个多项式的乘积。对于多个多项式的连乘,则不能直接使用此函数,需要用该函数嵌套使用,用起来很不方便。下面编写一个MATLAB函数,使它能直接处理任意多个多项式的乘积问题。 M-函数文件: functiona=convs(varargin) a=1; fori=1:length(varargin) a=conv(a,varargini); end 形。

13、参varargin是一个特殊的字符串,它把输入变量列表转换成一个元胞数组,每一个输入变量都是这个元胞数组的一个元素。下面调用这个函数,求解 d=(x4 2×3 4×2 5)(x 2)(x2 2x 3) 命令: p=1,2,4,0,5;q=1,2;f=1,2,3; d=convs(p,q,f) d= 16193645443530 命令: convs(p,q,f,1,1,1,3,1,1) ans= 1115617637657867864852731590 例10关于break、continue、return的用法。 当程序运行过程中出现return命令时,程序停止运行。break、continue。

14、用在循环语句中。在循环语句中,如果遇到break命令时,程序结束当前的“for”或“while”循环,转而执行它下面最近的end以下的语句;遇到continue时,跳过当次循环而继续下一次的循环,例如,原定要循环5次,但在进入第3次循环时遇到了continue,则第3次的循环被跳过,而继续第4次、第5次的循环。循环体实际上只重复执行了4次。 程序: clear str=MATLABR14.3version; fori=1:length(str) if(isletter(str(i) continue end result(i)=str(i); end resultresult=MATLABRversion 运行这个程序并观察结果。然后再将程序中的语句continue改为break或return,看运行结果有何变化。。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/188260.html原文链接:https://javaforall.cn

0 人点赞