MATLAB function函数的用法(附带实例)
如果 MATLAB 文件的第一条可执行语句以 function 开始,那么该文件就是函数文件,每个函数文件都定义一个函数。事实上,MATLAB 提供的函数命令大部分都是由函数文件定义的,这足以说明函数文件的重要性。
从使用的角度来看,函数是一个“黑箱”,把一些数据送进去,经加工处理,把结果送出来。从形式上来看,函数文件与脚本文件的区别在于:
【实例】编写函数 average(),用于计算向量元素的平均值。在编辑器窗口中编写 M 文件并命名为 average.m(文件名与函数名相同)。
通常,函数文件由以下几个基本部分组成:
1)函数声明行。函数声明行由关键字 function 引导,指明这是一个函数文件,并定义函数名、输入参数和输出参数。函数声明行必须为文件的第一条可执行语句,函数名与文件名相同,可以是 MATLAB 中任何合法的字符。
函数文件可以带有多个输入参数和输出参数。例如:
当然,也可以没有输出参数。例如:
2) H1 行就是帮助文本的第一行,是函数声明行下的第一个注释行,是供 lookfor 查询时使用的。
一般来说,为了充分利用 MATLAB 的搜索功能,在编制 M 文件时,应在 H1 行中尽可能多地包含该函数的特征信息。由于在搜索路径上包含 average 的函数很多,因此用 lookfor average 语句可能会查询到多个有关的命令。
例如:
3) 帮助文本在函数声明行后面,连续的注释行不但可以起到解释与提示的作用,更重要的是可以为用户的函数文件建立在线查询信息,供 help 命令在线查询时使用。
例如:
4) 函数体包含了全部用于完成计算及给输出参数赋值等语句。这些语句可以是调用函数、流程控制、交互式输入/输出、计算、赋值、注释和空行。
5) 以 % 起始到行尾结束的部分为注释部分。MATLAB 的注释可以放置在程序的任意位置,可以单独占一行,也可以在一条语句之后。例如:
从使用的角度来看,函数是一个“黑箱”,把一些数据送进去,经加工处理,把结果送出来。从形式上来看,函数文件与脚本文件的区别在于:
- 脚本文件的变量为命令工作空间变量,在文件执行完成后,保留在命令工作空间中;
- 函数文件内定义的变量则为局部变量,只在函数文件内部起作用,当函数文件执行完成后,这些局部变量将被清除。
【实例】编写函数 average(),用于计算向量元素的平均值。在编辑器窗口中编写 M 文件并命名为 average.m(文件名与函数名相同)。
function y = average(x) [a, b] = size(x); % 判断输入量的大小 if ~((a == 1) | (b == 1)) | ((a == 1) & (b == 1)) % 判断输入是否为向量 error('必须输入向量。') end y = sum(x) / length(x); % 计算向量 x 的所有元素的平均值 end保存 M 文件,函数 average() 接收一个输入参数并返回一个输出参数。该函数的用法与其他 MATLAB 函数一样。在 MATLAB 命令行窗口中运行以下语句,便可求得 1~9 的平均值。
>> x = 1:9 x = 1 2 3 4 5 6 7 8 9 >> average(x) ans = 5
通常,函数文件由以下几个基本部分组成:
1)函数声明行。函数声明行由关键字 function 引导,指明这是一个函数文件,并定义函数名、输入参数和输出参数。函数声明行必须为文件的第一条可执行语句,函数名与文件名相同,可以是 MATLAB 中任何合法的字符。
函数文件可以带有多个输入参数和输出参数。例如:
function [x,y,z]=sphere(theta,phi,rho)
当然,也可以没有输出参数。例如:
function printresults(x)
2) H1 行就是帮助文本的第一行,是函数声明行下的第一个注释行,是供 lookfor 查询时使用的。
一般来说,为了充分利用 MATLAB 的搜索功能,在编制 M 文件时,应在 H1 行中尽可能多地包含该函数的特征信息。由于在搜索路径上包含 average 的函数很多,因此用 lookfor average 语句可能会查询到多个有关的命令。
例如:
>> lookfor average_2
3) 帮助文本在函数声明行后面,连续的注释行不但可以起到解释与提示的作用,更重要的是可以为用户的函数文件建立在线查询信息,供 help 命令在线查询时使用。
例如:
>> help average_2函数 average_2(x) 用以计算向量元素的平均值。输入参数 x 为输入向量,输出参数 y 为计算的平均值。非向量输入将导致错误。
4) 函数体包含了全部用于完成计算及给输出参数赋值等语句。这些语句可以是调用函数、流程控制、交互式输入/输出、计算、赋值、注释和空行。
5) 以 % 起始到行尾结束的部分为注释部分。MATLAB 的注释可以放置在程序的任意位置,可以单独占一行,也可以在一条语句之后。例如:
% 非向量输入将导致错误 [m, n] = size(x); % 判断输入量的大小