5matlab的程序结构
- 格式:ppt
- 大小:763.00 KB
- 文档页数:33
实验五第3章MATLAB程序设计第二节程序控制结构程序控制结构有三种:顺序结构、旋择结构、循环结构.任何复杂的程序都可以由这三种基本结构构成.Matlab提供了实现控制结构的语句,利用这些语句可以编写解决实际问题的程序.一、顺序结构顺序结构是指按照程序中语句的排列顺序从上到下依次执行,直到程序的最后一个语句如例1的qiu文件和例2的dd1文件.这是最简单的一种程序结构.一般涉及数据的输入、计算或处理、数据的输出等内容.1. 数据的输入通过input命令来接收从终端输入的内容,它也可以显示文本和提示.命令集14 输入命令input(out ,in)在屏幕上显示出字符串out的文本并等待终端的输入.如果变量in是's',则输入的内容以字符串的形式进行保存,通常MATL AB在保存前要尽可能地求出表达式的值.如果使用格式控制符号如'\n',字符串out可以是若干行.2. 数据的输出可以通过简单地输入变量的名字来显示数字矩阵或者字符串向量的内容,结果将显示出变量的名字和内容.另一种显示变量的值就是使用命令disp.使用它只显示出变量的内容,这是有用的,特别是在字符串的应用中.命令集15显示命令disp(A)显示矩阵A的内容,如果A是字符串,则显示出它的文本.二、循环结构循环结构是按照给定的条件,重复执行指定的语句.Matlab用于实现循环结构的语句有for — end语句和while — end语句.1.for —end语句for-end语句的格式为:for 循环变量=表达式1 : 表达式2 : 表达式3循环体语句end其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值.步长为1时,表达式2可以省略.循环语句应用时应注意:● 循环语句可以嵌套使用;● 不能在 for — end 循环体内改变循环变量的值; ● 为了提高代码的运行效率,应尽可能提高代码的向量化程度,避免 for — end 循环的使用,如例8;● 如果预先就知道循环的次数,则可以采用 for — end 循环;否则,如果预先无法确定循环的次数,则可以使用 while — end 循环.2. while — end 循环while-end 语句的一般格式为:while (条件) 循环体语句 end 其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环.■例1 使用while-end 结构计算1+2+3+…+100 . 解:■例2 计算 Matlab 中 eps 值 (exp1.m) 解:s=0;for i=1:100 s=s+i; end ss=0; i=1;while i<=100 s=s+i; i=i+1; end snum=0; EPS=1; while (1+EPS)>1 EPS=EPS/2; num=num+1; endEPS,num三、选择结构选择结构是根据给定的条件成立或不成立,分别执行不同的语句.Matlab 用于实现选择结构的语句有条件语句:if –end 和 开关语句:switch-end .1.单分支结构 if —end 语句 2.双分支结构 if —else —end 语句 if-end 语句的格式为: if-else-end 语句的格式为:3.多分支结构 if — elseif — else — end 语句 if — elseif — else — end 语句的格式为:if 条件表达式 语句组 endif 条件表达式 语句组1 else语句组2 endif 条件表达式1 语句组1 elseif 条件表达式 2 语句组2 ... ...elseif 条件表达式 m 语句组m else 语句组end■例3求函数1;00;1;x y x x -<⎧⎪= =0⎨⎪ >⎩ ,输入x 值,输出y 值.解:■例4一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数.输出全部水仙花数.解:程序如下运行结果:153 370 371 407function y=fuhao(x) if x<0 y=-1; elseif x==0 y=0; else y=1; endA=[];for m=100:999m1=fix(m/100); %求m 的百位数字 m2=rem(fix(m/10),10); %求m 的十位数字 m3=rem(m,10); %求m 的个位数字 if m==m1*m1*m1+m2*m2*m2+m3*m3*m3 A=[A,m];endend disp(A)4. switch-end 语句根据表达式的不同取值,分别执行不同的语句.其格式如下:■关于 switch-end 语句的几点注解:● Matlab 首先计算表达式的值,然后将它依次与各个case 指令后的检测值进行比较,当比较结果为真时,就执行相应的语句组,然后跳出 switch-end 结构● 如果所有的比较结果都为假,则执行 otherwise 后面的语句组,然后跳出 switch-end 结构 ● otherwise 指令可以不出现● switch 后面的表达式的值可以是一个标量或字符串 ● case 指令后的检测值超过一个时,应用{}括起来switch 表达式 case 值1 语句组1 case 值2 语句组2 ... ... case 值m 语句组m otherwise 语句组n end■例5 阅读程序method=input('请输入方法名:')switch methodcase {'linear','bilinear'}disp('Method is linear')case 'cubic'disp('Method is cubic')case 'nearest'disp('Method is nearest')otherwisedisp('Unknown method.')end■例6用switch-end语句编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩,设:90分以上为…A‟, 80~89分为…B‟,70~79分为…C‟,60~69分为…D‟,60分以下为…E‟.function sctole(score)grade=fix(score/10);switch gradecase {10,9}grade='A'case 8grade='B'case 7grade='C'case 6grade='D'otherwisegrade='E'end四、其他流程控制语句●break语句●continue语句●return语句●try语句●echo命令●keyboard命令●pause命令1.break和continue语句与循环结构相关的语句还有break语句和continue语句.它们一般与if语句配合使用.break语句用于终止循环的执行.当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句后的下一语句.continue语句控制跳过循环体中的某些语句.当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环. ■例7求[100,200]之间第一个能被21整除的整数.for n=100:200if rem(n,21)~=0continueendbreakendn for n=100:200if rem(n,21)==0breakendendn2.try语句语句格式为:try语句组1catch语句组2endtry语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2.这种试探性执行语句是其他高级语言所没有的.■例8矩阵乘法运算要求两矩阵的维数相容,否则会出错.先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘.function C=rc(A,B)%A,B为矩阵tryC=A*B;catchC=A.*B;endlasterr %显示出错原因3.请求键盘输入命令keyboard暂停运行程序并处于等待键盘输入状态(便于调试及程序运行中修改变量),键入“return”程序继续运行.如运行如下:4. echo 命令(在命令窗口,程序调用前使用)一般情况下,M 文件执行时,文件中的命令不会显示在命令窗口.echo 命令可使文件命令在执行时可见.这对程序的调试及演示很有用.对命令文件和函数文件,echo 的作用稍微有些不同.●对命令文件,其格式如下:echo on 打开命令文件的回应命令 echo off 关闭回应命令●对函数文件,其格式如下:echo file on 使指定的file 文件的命令在执行中被显示出来 echo file off 关闭指定文件的命令在执行中的回应function y=f(x) keyboardy=(5*x-6)/((x-3)*(x-3)+2);>> f K>> x=4; K>> return ans = 4.6667>> y=f(4) K>> return y = 4.6667。
实验五:循环结构程序设计实验报告一、实验目的1. 了解循环结构的基本概念和原理;2. 掌握使用Matlab进行循环结构程序设计的方法;3. 提高编程能力和问题解决能力。
二、实验内容1. 学习while循环和for循环的基本语法和用法;2. 设计并编写一些基于循环结构的Matlab程序;3. 分析程序运行结果并进行总结。
三、实验原理循环结构是程序设计中的重要组成部分,它可以让一段代码重复执行多次,从而简化程序的编写。
在Matlab中,循环结构主要有while 循环和for循环两种形式。
while循环在执行循环体前判断条件是否为真,只有条件为真时才会执行循环体;for循环则是指定循环的次数,每次迭代时执行一次循环体。
四、实验步骤与结果1. 编写一个使用while循环的程序,实现1~100的累加。
程序代码如下:```matlabsum = 0;i = 1;while i <= 100sum = sum + i;i = i + 1;enddisp(sum);```运行程序后,得到的结果为5050。
2. 编写一个使用for循环的程序,实现1~10的阶乘。
程序代码如下:```matlabresult = 1;for i = 1:10result = result * i;enddisp(result);```运行程序后,得到的结果为xxx。
五、实验总结通过本次实验,我深刻理解了循环结构的基本概念和原理,掌握了使用Matlab进行循环结构程序设计的方法。
在编写循环程序的过程中,我发现循环结构可以大大简化程序的编写,并且能够高效地处理重复性任务。
我也进一步提高了自己的编程能力和问题解决能力。
本次实验使我对Matlab中的循环结构有了更加深入的了解,我相信这对我的编程能力和日后的学习工作都将大有裨益。
六、实验感想和改进意见通过本次实验,我深刻认识到循环结构在程序设计中的重要性和灵活性。
循环结构能够帮助我们简化程序的编写,提高代码的重用性和可读性,因此在实际的程序设计中,合理地运用循环结构能够大大提高程序的效率和逻辑清晰度。
Real—-Time Workshop 实时仿真研究与应用MATLAB工具RTW可以从图形模型生成ANSIC源代码.下载此代码在实时操作系统中(比如windows)运行可以实现实时仿真。
对于仿真平台来说,关键的是提供高速运算、实时进程管理、高精度时间函数以及丰富灵活的仿真控制框架。
而通用操作系统Windows不是实时操作系统,不能提供严格的实时支持。
MATLAB利用组件Simulink可以进行控制领域中模型的设计和仿真运行,但缺少对实时仿真的支持。
MATLAB的工具Real—TimeWorkshop从Simulirtk的图形模模型中可以创建程序生成的代码可以在Pc机、数宁信号处理机、九操作系统机器的微控制器以及商业化的实时操作系统(RTOS)等环境运行。
Real—Time Workshop(RTW)简介RTw 是和Matlab、Simulink一起使用的一个工具,它可以直接从Simulink模型生成代码并且自动建立可以在不同环境下运行的程序,这些环境包括实时系统和单机仿真.RTW 能够应用的场合十分广泛.1)实时控制:可以使用Matlab和Simulink设计控制系统,并且从建立的图表模型生成代码,编译并载入它们到目标硬件.2)实时信号处理:可以使用Matlab和Simu—link设计信号处理算法,同样可以从模型生成代码,编译和载入它们到目标硬件.3)生成可插入到其他仿真程序的便携c代码:非缺省情况下,根据用户的设置可以生成如下代码:(1)Ada代码:从Simulink模块生成Ada代码,要求用户安装Real—Time Workshop Ada Coder.(2)实时程序:将代码转换为适合硬件运行的实时程序.对应代码被设置为和一个外部时钟源相连接,且以用户设定的固定采样速率运行.(3)高性能单机仿真程序:将生成的代码和普通实时系统目标文件一起使用,为单机仿真生成可以执行的程序.接触Matlab10年后的一个总结,随时使用Matlab要掌握的一些要点阅读目录• 1.前言• 2.Matlab的简单介绍• 3.Matlab开发环境介绍• 4.那些常见的命令• 5.不得不说的矩阵操作• 6.编程语法•7.关于Matlab我想说的话不记得上一次写超过20行的matlab程序是什么时候了,大概是2013年吧,那个时候写过2篇文章,实际用到了一些matlab的内容,超过200行的matlab程序应该要追溯到2011年了,最近为了帮助网友解决我博客一篇文章的问题,把自己2011年的matlab翻出来,感触颇多,一言难尽,看到昔日熟悉的代码,我居然能理解,然后还能修修改过,感觉好多年没用了,连基本函数都忘记了,还是碰到问题还是会写会改,这里面也说明了编程不简单是一个记忆和经验的问题,更重要的是学习的方法和解决问题方法的问题。
实验五、选择与循环结构一、实验目的:1、 掌握建立和执行M 文件的方法。
2、 掌握利用if 语句实现选择结构的方法。
3、 掌握利用switch 语句实现多分支选择结构的方法。
4、 掌握try 语句的使用。
5、 掌握利用for 语句实现循环结构的方法。
6、 掌握利用while 语句实现循环结构的方法。
7、 熟悉利用向量运算来代替循环的操作方法。
二、实验内容:1、 列分段函数的值。
⎪⎩⎪⎨⎧--≠≠<≤+--≠<-+=其他且且,632,100,6530,6222x x x x x x x x x x x y要求:(1) 用if 语句实现,分别输出x =-0.5,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。
提示:x 的值从键盘输入,可以是向量。
%homework_5_1_1.mx=input('请输入x 的值:x=');if (x<0 & x~=-3)y= x.*x + x - 6elseif (x>=0 & x<10 & x~=2 & x~=3)y=x.*x-5.*x+6elsey=x.*x-x-6end>> homework_5_1请输入x 的值:x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0]y =-5.2500 6.0000 -6.0000 -4.0000 -2.2500 0 14.0000(2) 用逻辑表达式实现上述函数。
%homework_5_1_2.mx=input('请输入x 的值:x=')y=(x<0 & x~=-3).*(x.*x+x-6)...+(x>=0 & x<10 &x~=2 &x~=3).*(x.*x-5.*x+6)...+(x>=10 | x==-3 | x==3 | x==2).*(x.*x-x-6)>> homework_5_1_2请输入x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0]x =-0.5000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 y =-6.2500 6.0000 2.0000 -4.0000 -0.2500 0 6.00002、输入一个百分制成绩,要求输出成绩的等级为A,B,C,D,E。
matlab 程序组织结构MATLAB是一种非常流行的科学计算软件,可以被用于许多应用领域,包括计算机科学、化学、机械、地球科学、生物学等。
当你开始编写MATLAB程序时,你需要考虑程序的组织结构,以确保程序易于理解、易于维护,并且在适当的时候可以扩展。
下面是MATLAB程序组织结构的主要要求和建议:1. 脚本和函数MATLAB程序可以分为脚本和函数。
脚本是一组MATLAB命令和表达式,按顺序执行。
函数是一个独立的代码单元,它可以接受输入参数并产生输出结果。
2. 目录和文件名为了组织你的MATLAB程序,你需要考虑它们的目录和文件名。
你应该把程序按照功能或主题划分为不同的目录,并使用有意义的文件名描述程序的用途。
3. 编写可重用的代码一些MATLAB程序中可能包括可以被多次调用的函数或函数库。
编写可重用的代码可以提高代码质量、改进工作效率并且方便未来的维护。
4. 使用注释注释是非常重要的,可以帮助你和别人理解代码是如何工作的。
你应该花费足够的时间来编写清晰、有用和易于理解的注释。
在MATLAB 中,你可以用“%”来注释代码。
5. 数据和变量在编写MATLAB程序时,你应该尽可能清晰地定义数据和变量。
比如,你可以使用变量名来描述变量的用途,名称可以简短、具有描述性、并且能够清晰地表达变量的含义。
此外,你应该避免在程序中使用魔法变量,这可能会导致代码难以维护。
6. 分离功能MATLAB程序可以分为不同的功能或子函数,每个功能或子函数都负责完成特定的任务。
此外,你应该尽可能地保持每个函数或子函数的独立性,避免它们之间出现过多的耦合。
总之,MATLAB程序的组织结构是非常重要的,可以帮助你和别人更好地理解和维护代码。
你应该花费时间和精力来创建一个组织良好的MATLAB程序结构,并尽可能遵循上述建议。
matlab选择与循环程序结构设计在MATLAB 中,程序结构主要分为顺序结构、选择结构和循环结构三种。
下面分别介绍这三种程序结构的语法规则和示例:1. 顺序结构顺序结构是最简单的程序结构,其基本语法规则如下:```statement1statement2...statementN```其中,N 表示语句的数量。
在MATLAB 中,可以使用花括号`{}` 将语句括起来,形成一个代码块。
例如,下面的代码定义了一个向量,并对其进行了求和操作:```A = [1 2 3 4 5];sum = 0;for i = 1:size(A, 1)sum = sum + A(i);enddisp(['The sum of the elements in A is: ', num2str(sum)]);```在这个例子中,首先定义了一个向量A,然后使用`for` 循环语句遍历向量中的每个元素,将其加到变量`sum` 中,最后使用`disp` 函数输出求和的结果。
2. 选择结构选择结构是一种基于条件判断的程序结构,其基本语法规则如下:```if conditionstatement1elseif condition2statement2elsestatement3```其中,`condition` 表示条件判断,如果其结果为真,则执行`statement1`,如果其结果为假,则依次判断`condition2` 是否为真,如果是,则执行`statement2`,否则执行`statement3`。
例如,下面的代码判断用户输入的数字是否为偶数,如果是,则输出"even",否则输出"odd":```num = input('Please enter a number: ');if num % 2 == 0disp('It is even!');elsedisp('It is odd!');end```3. 循环结构循环结构是一种重复执行某段代码的程序结构,其基本语法规则如下:while conditionstatement1end```或者```for variable in expressionstatement1end```其中,`condition` 表示循环条件,如果其结果为真,则执行`statement1`,直到其结果为假时停止循环。