还剩5页未读,继续阅读
文本内容:
实验三程序设计MATLAB
一、实验目的掌握程序设计的主要方法,熟练编写函数MATLAB MATLAB
二、实验内容文件的编辑
1.M.程序流程控制结构2,子函数调用和参数传递
3.局部变量和全局变量4
三、实验步骤文件的编辑
1.M选择的菜单打开新的文件进行辑,然后输入以下内容,并保存MATLAB File-New-M-file,M文件名为expl.mo脚本文件%M%功能计算自然数列的数列和1〜100s=0;for n=l:100s=s+n;ends保存好文件后,在命令窗口输入即可运行该脚本文件,注意观察变量空间接着创建expl M函数文件,然后输入以下内容,并保存文件名为exp
2.m%这是函数文件M%功能计算自然数列的数列和1〜xfunction s=exp2xs=0;for n=l:xs=s+n;end保存好文件后,在命令窗口输入»clear»s=exp2100得出结果如下»cxp2200ans=20100%命令可以打开文件进行修改open M如»open%打开函数conv conv程序流
2.程控制结构1for循环结构for n=l:10nend另一种形式的循for环n=10:-l:5%循环的次数为向量的列数for i=n n*end循环结构2while在命令窗口输入»clear,clc;x=l;while1x=x*2end进入死循环,因为判断的值恒为真,须按下键来中断运行,并且可看MATLAB whileCtrl+C到的值为无穷大x分支结构3if-else-end分支有如下种形式if-else-end3表达式a if语句组1end表达式b if语句组1else语句组2end表达式c ifA语句组1表达式clscif B语句组2elseif语句组3else语句组nend结构4switch-case创建脚本文件输入以下内容并在命令窗口中运行M exp
3.m,%功能判断键盘输入的数是奇数还是偶数n=inputn=;if isemptynerrorCpleaseinput nendswitchmodn,2case1二,奇数,Acase0惘数’A=end子函数和参数传递
3.%主函数function g=exp4xg=0;for n=l:x%调用子函数g=g+factn;end%子函数function y=factky=l;for i=l:ky=y*i;end输入参数可以由函数nargin计算,下面的例子hanshu,当只输入一个参数函数会时,hanshu给赋予默认值输出参数可以由计算y Oonargoutfunction[sum,n]=hanshu x,y%函数参数个数可变,计算与的和x yifnargin==ln=1;%输入一个参数就计算与的值sum=x;0elseif nargin=0n=0;%无输入参数就输出sum=0;0else%输入的是两个数就计算和二sumx+y;endn=2;==if nargoutsum=0;end局部变量和全局变量
4.自程序执行开始到退出始终存放在工作空间,可被任何命令文件和数据文件存取或MATLAB,修改的变量即是全局变量,全局变量可用于函数之间传递参数,全局变量用关键字声明global编写一个求和的函数文件,其名为程序如下summ.mofunction s=summglobal BEGEND二k BEG:END;s=sumk;再编写调用脚本文件来调用函数文件,它们之间通过全局变量传递参数M use.m summ.m程序如下global BEGENDBEG=1;END=10;sl=summ;BEG=1;END=20;s2=summ;
四、实验练习结果50vA「y=y
1、已知22*x-x+lH分别用while循环、for循环和向量求和三种方式编写程序,以求出y的值While循环%主函数function s=abcx xs=0;n=l;while n51%调用子函数s=s+rel n;;n=n+lend告子函数function y=rel ny=0;y=n/2*n*n-n+l;end得ans=
2.3658for循环%主函数function s=abcx xs=0;for n=l:50%调用子函数s=s+rel n;;n=n+lend%子函数function y=rel ny=0;y=n/2*n*n-n+l;end得二ans
2.3658向量法[]x=0:50;X=diagx;八s=X./
2.*X.2-X+l;%求方阵的迹即对角线之和sum=tracesdispsum得Sum=
2.
36582、设计一个学生身高的管理系统,输出身高的级别分别为5个等很高、较高、中等、较矮、矮,其中190cm以上的为“很高”,[180011190加]区间为“较高”,[1705,1805]为“中等,[160cm」70cm]为“较矮%160cm以下为“矮”要求分别用if语句和switch语句实现if语句身高为’x=inputifx190很高上dispCelseif x=190x180较高;dispelseif x=180x170中等,dispCelseif x=170xl60较矮);dispC矮);else dispCEndSwitch语句二身高为);x inputCifx190n=l;elseif x=190x180n=2;elseif x=180x170n=3;elseif x=170x160n=4;else n=5;endswitch n很高)dispC较高);dispC中等);dispC较矮)dispC矮);dispCend
五、思考分析通过这次实验课,我基本掌握了函数的命名、编写和调用,以及if和switch两种循环结构需注意函数的命名要放在最开始处,且end后面不能再声明函数,调用函数的保存名称最好和函数名称相同对matlab的学习应该做到理论学习和实验学习并重,只有通过自己动手编写,才能做到真正掌握。