M函数文件:
函数文件的第一行必须包含关键字“function”,表示m文件是函数文件,其基本格式如下:
function [输出参数形式] = 函数名 (函数形参表)
注释说明语句段
程序语句段
其中:
输出形参表:用方括号括起来的输出形参表是函数经过运算后所得到的结果变量列表
函数名:是要定义的函数名字,一般由字母,数字和下划线组成,其命名规则和变量名命名规则相同
输入形参表:是函数输入参数列表,列表中参数与参数之间用逗号来分割,是函数从外界接受数据的接口
运用示例:
编写一个求n!的阶乘函数
分析:阶乘n!的数学定义为:
n!= n*(n-1)*(n-2)*...*2*1;且规定0!= 1;
程序:
function p = fac(n)
%fac函数用于计算n!
%对应于参数n的实参应该是非负整数
if n == 0
p = 1;
else
p = 1;
i = 1;
while i<= n
p = p*i;
i = i+1;
end
end
函数的调用:
编写好函数文件后,就可以调用该函数来进行计算了,其方法与调用系统标准函数库文件没有本质区别
调用格式为:
[输出实参列表]=[输入实参列表]
要注意的是,在函数调用时会将输出实参依次传递给函数的形参,因此,输入实参必须与函数定义的形参中各个参数出现的次序必须完全一致,否则会出错。
比如,现在调用上面编好的函数:
>>fac(7)
ans =
5040
当然,对于已编好的阶乘函数,也可以像系统提供的标准函数库一样,在其他的计算文件中调用。
如:求1!+2!+3!+...+7!
sum = 0;
for i = 1 : 7;
sum = sum + fac(i);
end
sum
运用M函数文件示例:
采用递归法求 n!
分析:由阶乘的概念可以写出其递归定义:
0!= 1
n! = n*(n-1)
程序:
function p = factorial(n)
%factorial函数用于计算n!
%对应于参数n的实参应该是非负整数
if n == 0
p = 1;
else
p = n*factorial(n-1)
end
输出示例:
>>factorial(7)
ans =
5040
更多推荐
Matlab||M函数文件及函数文件的使用,并用M文件解决n!阶乘问题
发布评论