Matlab同一文件中子函数的写法以及函数调用详解
1、我们打开Matlab软件,新建一个test.m主程序,键入一下代码
a=[5 8 6 4];
result=main_a(a);%main_a()函数是我们要编写的函数
我们用来测试的主要功能是用一个函数实现4个非零数的加减乘除运算,在主函数中将运算结果相加,加减乘除分别在四个子函数中运算。
这个例子很简单,在这里只是为了给大家演示如何进行子函数的编写以及注意事项。

2、我们新建一个脚本文件,命名为main_a,如图所示

3、在main_a中写入以下代码,为主程序
function result=main_a(a)
%将数据分别赋值
b=a(1);
c=a(2);
d=a(3);
e=a(4);
add_result=add_1(b,c,d,e);
sub_result=sub_1(b,c,d,e);
mul_result=mul_1(b,c,d,e);
div_result=div_1(b,c,d,e);
result=add_result+sub_result+mul_result+div_result;
4、在同一个文件之下,写入以下代码
%% 子函数
function add_result=add_1(b,c,d,e)%加法运算
add_result=b+c+d+e;
function sub_result=sub_1(b,c,d,e)%减法运算
sub_result=b-c-d-e;
function mul_result=mul_1(b,c,d,e)%乘法运算
mul_result=b*c*d*e;
function div_result=div_1(b,c,d,e)%除法运算
div_result=b*c/d*e;
总的main_a.m文件内容如图

5、这样,我们可以将不同的功能分别写成一个子函数,可以很方便的修改子函数或者主函数。需要注意的是,在main_a开头第一个函数是主函数,主函数只能有一个,其余的函数均为子函数。
6、程序运行结果如图所示

7、在文件中,子函数的参数值是通过主函数中的函数调用传过去的,子函数无法自动获取主函数中的参数值。我们也可以通过定义全局变量来使子函数获得参数值,如global b c d e。