第4章 程序设计
MATLAB中所编写的程序文件以.m为扩展名,统称为M文件,其形式有两种:脚本和函数,前者是 MATLAB 语句序列,不能接受参数,也不返回结果,但可以将其中所定义的变量存储在工作区中;后者可以接受参数和返回结果。由于函数比脚本更灵活,更具有普适性,所以应用较广。MATLAB提供了程序开发的编辑工具Editor,通过菜单File→New→Script或File→New→Function可以打开程序编辑器,也可以在命令窗口中直接输入edit指令打开如图4-1所示的编辑器,其编辑功能与Windows的记事本相似,但具有语法着色功能(关键字用不同颜色表示),我们可以先忽略不太熟悉的界面和菜单。
图4-1 程序编辑器
脚本的名称即为M文件的文件名,而函数名称则分为,当函数是主函数时,函数名称与M文件名相同(可以不同,但建议取相同的名称),而子函数则与M文件名不同,甚至可以没有名称(匿名函数)。而实际上,脚本也可以使用函数的形式,只不过不需要输入参数和返回参数之类的内容罢了。
4.1 M文件的建立
M 文件可以使用任意的文本编辑器来创建,在保存文件时必须用.m 作为扩展名,建议使用MATLAB自带的程序编辑器(Editor)。
在程序编写时,为了便于自己或他人知晓脚本或函数的功能,可以使用注释来对程序代码和参数的含义进行说明。M文件具有建议的规范格式,对于函数而言,示例如下。
function f = fact(n) 函数定义行,脚本无此行,否则为函数 % Compute a factorial value. H1行 % FACT(N) returns the factorial of N, 帮助文本 % usually denoted by N! % Put simply, FACT(N) is PROD(1:N). 注释 f = prod(1:n); 函数体 disp(f); %Display the result 行内注释 %{ The above function f defines the factorial value of an integer, for convenient, just use the function prod to compute the product of elements. %} end %函数结束
(1)函数定义行负责定义函数的名称以及输入和输出参数的个数和顺序,函数名称最好一目了然,即从名字上就可以大略知晓其功能;输入参数需放在()内,如果有多个参数,则用逗号分隔开;输出参数如果有多个,则需将它们放置在[ ]内,多个输出参数间用空格或逗号分隔,函数定义语句的格式如下所示:
function [out1, out2, ...] = myfun(in1, in2, ...)
其中function是关键字;myfun是函数名;in1, in2是输入参数;out1,out2是输出参数。
(2)H1行为紧跟函数定义行之后以%打头的一行,在命令窗口输入help 函数名,可显示该行信息,一般用作函数功能的说明。
(3)帮助文本是H1行接下来以%打头的一行或多行,直到第一个非百分号(%)打头的行结束;注意H1行和帮助文本之间不能有空行,否则使用help命令无法获取帮助文本信息。
(4)注释行以%开始,可以单独作为一行,也可以放在代码的末尾,如果注释的信息较多需要用多行时,则使用%{ 和 %}符号对。当然你可以省略掉所有注释和帮助文本以及H1行,这不会妨碍程序的正常运行。