首页 > 编程知识 正文

matlab循环,matlab中for语句

时间:2023-05-05 19:25:01 阅读:149776 作者:733

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

1、matlab基本语句1 .循环语句forfori=s1:s3:s2循环语句组end解释:首先将s1代入I; 然后,判断I是否在s1和s2之间; 如果为是,则执行循环语句群,i=i s3 (否则结束循环.); 执行结束后,进入下一个周期。 示例:要计算1到100之和,可以编程如下: 名为sum=0f ori=1336013360100 sum=sumiend的程序也可以用while语句编程。 注意: for循环可以通过break语句终止整个for循环。 2 .循环语句while示例: sum=0; i=1; wile(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 :将示例1写入M-文件编辑器,然后在commandwindow中调用此程序。 选择多个条件时,可以使用以下格式: if公式1程序模块1 elseif公式2程序模块2 elseif公式n程序模块nelse案例n 1 end将学生成绩的百分比转换为。

三五分制输出。 步骤: clear n=input (输入n=(IFN=90chji=优秀elseifn=80 chji=良好elseifn=70 chji=中等elseifn=60 chji=合格else chji=失败end练习2 其形式可以省略switch式case数值1程序模块1 case数值2程序模块2 otherwise程序模块n end中的otherwise模块。

4、switch语句的执行过程是首先计算公式的值,然后将结果依次与各case之后的数值进行比较,在相等的情况下执行该case的程序模块; 如果两者都不相等,请执行otherwise模块中的语句。 如图3所示。 例3将百分位的学生成绩通过switchcase交换机结构转换为五分位的成绩并输出。 程序:clearx=58switchfix(x/10 ) case 10,9y=优秀case8 y=良好case7 y=中等case6 y=通过otherwise y=失败end练习3 :将示例3转换为M-文件编辑器

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 )练习4 )建立MATLAB和word的连接,并写入新的m-book。

6、进入上面的程序,通过notebook菜单执行。 循环结构中包括循环结构,也可以形成多重循环。 例5设计九九乘方表。 程序: clear fori=1:9 forj=1:9 a (I,j )=i*j; end enda,练习5 :直接在命令窗口中编写以上程序。 尝试并运行以下程序进行分析。 程序: disp (九九乘法表)、fori=1:9、forj=1:i、pi(j )=j*i; end,disp(pi ),end )2) whileend循环结构。 其形式是,求解while (式)循环结构体end例6MATLAB的相对精度解)问题的思路是,在MATLAB分不清1 y和1之前,不断减小y的值。

7、直到歧视。 程序: y=1; while1 y1; y1=y; y=y/2; end,y1说明: for循环和while循环的区别在于,for语句的循环次数是固定的,而while语句的循环次数不是固定的。 必须在循环结构内设置“修正条件式的语句”,注意不要进入“死循环”。 发生死循环时,可以在命令窗口中使用ctrl c中止程序。 注意程序的可读性。 练习6 :在M-file编辑器中创建上述脚本文件,然后使用菜单或快捷按钮运行。 三. 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+2x3+4x2+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,看运行结果有何变化。。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。