M文件有两种形式,一种是命令文件(有的书中也叫脚本文件),另一咱是函数文件。
1.命令文件
在实际应用中,如果要输入较多的命令,且需要经常重复输入时,就可以利用M文件来实现,需要运行这些命令时,只需在命令窗口中输入M文件的文件名即可,系统会自动逐行地运行M文件中的命令。命令文件中的语句可以直接访问MATLAB工作空间中的所有变量,且在运行过程中所产生的变量均是全局变量。这些变量一旦生成,就一直保存在内存中,用clear命令可以将它们清除。
例:编辑一个M文件,使其功能为求10!
在命令窗口输入factorial10
>> factorial10
10的阶乘为:
s =
3628800
>>
可以用whos来查看运行后内存中的变量,如下:
>> whos
Name Size Bytes Class
ans 1x1 8 double array
i 1x1 8 double array
s 1x1 8 double array
Grand total is 3 elements using 24 bytes
>> clear %清除内存中的变量,之后再运行whos将什么也不显示
>> whos
>>
2.函数文件
函数文件的第一行一般都以function开始.它是函数文件的标志.它是为了实现某种特定功能而编写的,例如MATLAB工具箱中的各种命令实际上都是函数文件,由此可见函数文件在实际应用中的作用.
函数文件与命令文件的主要区别在于:函数文件一般要带有参数,要有返回值(有一些函数文件不带参数和返回值),而且函数文件要定义函数名;命令文件一般不需要带参数和返回值(有的命令文件也带有参数和返回值),且其中的变量在执行后仍会保存在内存中,直到被clear命令清除.而函数文件的变量公在函数的运行期间有效,一旦函数运行完毕,其所定义的一切变量都会被系统自动清除.
例:编写一个求任意非负整数阶乘的函数,并用它来求上例中10的阶乘。
>> jiecheng(10)
ans =
3628800
>>
在编写函数文件时,一定要养成写注释的习惯,这样可以使程序更加清晰,也可以让别人看得明白,同时也对后面的维护起向导作用。利用help命令可以查到关于函数的一些注释信息,例如:
>> help jiecheng
此函数用来求非负整数n的阶乘
参数n可以为任意的非负整数
编写日期:2014-6-21
>>
在应用这个命令时需要注意,它只能显示M文件注释语句中的第一个连续块,而与第一个连续块间被空行或其他语句所隔离的注释语句将不会显示出来。lookfor命令同样可以显示行注释中尽可能多的包含函数特征信息的习惯。