MATLAB主函数和子函数调用例子
与其他的高级语言一样,在MATLAB语言中也可以很方便地定义子函数,用来扩充函数的功能。在MATLAB中,一个M文件函数中只包含一个主函数,但是可以包含多个子函数在函数文件中题头定义的函数为主函数,而在函数体内定义的其他函数都被视为子函数。子函数只能为主函数或同一主函数下的其他子函数所使用。
例题 主函数和子函数调用实例。
打开M文件编辑器,编写程序代码如下。保存文件,取名为my_subf.m,如图13-1所示。
图13-1 函数文件my_subf.m
M文件中包含3个函数声明行,对应3个函数,即一个主函数my_subf和两个子函数subf1和subf2。两个子函数并列的实现各自的功能,供主函数调用。
MATLAB程序如下:
function z=my_subf(x,y) %主函数my_subf
%任意输入两个数,求两个数分别为分母的分式值的和
%创建两个子函数,分别为x./y和 y./x
%主函数运用分支语句,当输入数字为0时,警告报错
z1=subf1(x,y);
z2=subf2(x,y);
if(x==0)|(y==0)
error('0''不能作为分母')%关系、逻辑运算判断,如果想x、y有一个为0,则报错
else %输入的x、y都不为0
z=z1+z2;
end
function z1=subf1(x,y) %子函数1,求以y为分母的分式值
z1=x./y;
function z2=subf2(x,y) %子函数2,求以x为分母的分式值
z2=y./x;
在MATLAB命令窗口调用M文件,输入不同的参数,执行程序得到的结果不同:
>> my_subf(6,7)
ans =
2.0238
>> my_subf(6,0)
??? Error using ==> my_subf at 5
0'不能作为分母
>> my_subf(0,0)
??? Error using ==> my_subf at 5
0'不能作为分母