首页 > 编程笔记 > MATLAB笔记 阅读:22

MATLAB function函数的用法(附带实例)

如果 MATLAB 文件的第一条可执行语句以 function 开始,那么该文件就是函数文件,每个函数文件都定义一个函数。事实上,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);  % 判断输入量的大小

相关文章