tyao计算机仿真与模拟6M文件.ppt
- 文档编号:18852611
- 上传时间:2024-01-30
- 格式:PPT
- 页数:27
- 大小:145.50KB
tyao计算机仿真与模拟6M文件.ppt
《tyao计算机仿真与模拟6M文件.ppt》由会员分享,可在线阅读,更多相关《tyao计算机仿真与模拟6M文件.ppt(27页珍藏版)》请在冰点文库上搜索。
2.6M文件及程序调试,2.6M文件及程序调试,M文件:
由MATLAB命令语句构成的程序文件称作M文件,它将.m作为文件的扩展名。
可以直接阅读并用任何文本编辑器来建立这种文件。
在命令窗口中输入edit或edit*.m启动内建的M文本编译器确保要编译的文件在Matlab的路径中。
M文件可分为两种:
主程序和子程序。
主程序(scriptfile,也称主程序文件或脚本文件):
一般是由用户为解决特定的问题而编制的程序。
子程序(functionfile,称为函数文件):
它必须由其它M文件来调用。
函数文件往往具有一定的通用性,并且可以进行递归调用。
主程序文件:
常用于一连串费时的命令没有输入和输出参数参数的变量都存放在工作空间中,与其他主程序文件及matalb命令行接口共享。
2.6.1主程序文件,主程序文件的格式特征如下:
(1)有关程序的功能、使用方法等内容的注释。
主程序前面的若干行通常是程序的注释,每行以“”开始。
(2)程序的主体。
(3)整个程序应按MATLAB标识符的要求起文件名,并加上后缀m。
2.6.1主程序文件,对主程序文件的运行方式通常有两种:
在MATLAB的命令窗口中运行:
在MATLAB的命令窗中键入此程序的文件名后,系统就开始执行文件中的程序;在编辑窗口中运行:
通过编辑窗口打开所要运行的文件,然后再运行。
主程序文件中的语句可以对MATLAB工作空间中的所有数据进行运算操作。
%计算Fibonacci数的文件clear,closeallN=input(InputMaxnumberN=)f=1,1;i=1;%变量初始化whilef(i)+f(i+1)N%循环条件检验f(i+2)=f(i+1)+f(i);%求Fibonacci数的算式i=i+1;endf,plot(f),2.6.2函数文件,Matlab函数文件是用来定义子程序的,它与主程序文件的主要区别有三点:
(1)由function起头,后跟的函数名必须与文件名相同;
(2)有输入输出变量,可进行变量传递;(3)程序中的变量除非用global声明,否则均为局部变量,不保存在工作空间中。
2.6.2函数文件,函数文件通常是在扩充Matlab函数库时使用,可以接收参数,也可以返回参数。
运算中所产生的变量都存放在函数本身的工作空间中,2.6.2函数文件,通常,函数文件由几部分构成:
函数定义行;函数帮助文本;函数体;注释。
2.6.2函数文件,函数定义命令function()格式:
functionoutput1,output2,=functionname(input1,input2,.)函数体功能:
定义函数名为functionname的函数,该函数的输出变量为output1,output2,,输入变量为(input1,input2,.)。
2.6.2函数文件,例:
functiony=mean_aty(x)%求平均值%对于向量,返回向量x中各元素的平均值%对于矩阵,返回矩阵x中各列元素的平均值m,n=size(x);ifm=1m=n;endy=sum(x)/m;y%displaytheanswer,2.6.2函数文件,例如:
functiony=mean(x)function为函数定义的关键字,mean为函数名,y为输出变量,x为输入变量。
注意:
当函数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括起。
例如:
functionx,y,zsphere(theta,phi,rho)当函数不含输出变量时,则直接略去输出部分或采用空方括号表示。
2.6.2函数文件,1函数调用常见的函数调用形式为:
out1,out2,=functionname(in1,in2,)一个函数可以嵌套,也可以调用其它的函数,甚至调用自己(递归调用)。
2.6.2函数文件,主函数与子函数Matlab中允许一个M函数文件包含多个函数的代码。
第一个出现的函数称为主函数,其他的称为子函数。
保存时文件名与主函数名相同,2.6.2函数文件,主函数可以在外部调用,子函数只在主函数和该文件中其他子函数中可见子函数的第一行是其它函数声明行,而且多个子函数不分排序。
在M文件中,任何指令都可以通过名字调用函数同一个M文件中的主函数和子函数的工作空间是彼此独立的。
各函数间的信息可以通过输入输出变量、全局变量等进行传递,2.6.2函数文件,在MATLAB中,函数参数具有自己的专有工作空间。
函数中的参数和命令行参数不在一个空间中,它们的唯一联系为函数的输入输出变量。
输入参数在函数中是可读的,但任何改动不会传递回上一级空间。
2.6.2函数文件,通常,在MATALB工作空间中,变量有三类:
由调用函数传递输入和输出数据的变量;在函数内临时产生的变量称为局部变量由调用函数空间、基本工作空间或其它函数工作空间提供的变量称为全局变量。
2.6.2函数文件,在MATLAB中对变量以及全局变量管理提供global命令:
global格式:
globalXYZ功能:
将变量X、Y、Z定义成全局变量,在函数、命令行等都可以共享这些变量在实际应用中,应当尽量避免使用全局变量。
子函数文件:
functiony=exmp_global(A)globalNy=sum(A)/N;主文件:
globalNN=100;A=1:
10;mean_A=exmp_global(A),2.6.2函数文件,注意事项:
函数文件,函数名称和文件名必须相同;需要注意函数文件的放置位置;使用函数可以加快计算速度;函数的前一部分注释为帮助行,在使用help命令是看到的为这些注释行。
2.6.2函数文件,函数可以按少于函数M文件中所规定的输入和输出变量进行调用,但不能用多于函数M文件中所规定的输入和输出变量数目。
2.6.2函数文件,MATLAB搜寻函数M文件的顺序例如,输入sin,MATLAB首先认为sin是一个变量;如果它不是,那么MATLAB认为它是一个内置函数;如果还不是,MATLAB检查当前sin.m的目录或文件夹;如果它不存在,MATLAB就检查sin.m在MATLAB搜寻路径上的所有目录或文件夹。
2.6.3程序的调试,1.MATLAB的主程序的调试:
MATLAB的查错能力很强,加上工作空间中变量的保存和显示功能不需要专门的调试命令,因此,主程序的调试很方便地进行。
2.6.3程序的调试,2.函数程序的调试:
因为在函数程序中出错而停机时,其变量不作保存。
虽然它也会指出出错的语句,但因为子程序中的变量(局部变量)在程序执行完毕后会自动消失,其它现场数据又无记录,会给调试带来很大困难。
可采用下列措施:
2.6.3程序的调试,
(1)把某些分号改为逗号,使中间结果能显示在屏幕上,作为查错的依据。
(2)在子程序中适当部位加keyboard命令,到了此处,系统会暂停而等待用户键入命令。
这时子程序中的变量还存于工作空间中,可以对它进行检查。
return返回,2.6.3程序的调试,(3)将函数文件的第一行前加“%”号,使它成为程序文件来作初步调试。
第一行中的输入变元,可改用input或赋值语句来输入,调试好后再改回为函数文件。
(4)在程序中使用人机交互命令。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- tyao 计算机仿真 模拟 文件