操作方法
我们打开Matlab软件,新建一个test.m主程序,键入一下代码 a=[5 8 6 4]; result=main_a(a);%main_a()函数是我们要编写的函数 我们用来测试的主要功能是用一个函数实现4个非零数的加减乘除运算,在主函数中将运算结果相加,加减乘除分别在四个子函数中运算。 这个例子很简单,在这里只是为了给大家演示如何进行子函数的编写以及注意事项。
我们新建一个脚本文件,命名为main_a,如图所示
在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;
在同一个文件之下,写入以下代码 %% 子函数 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文件内容如图
这样,我们可以将不同的功能分别写成一个子函数,可以很方便的修改子函数或者主函数。需要注意的是,在main_a开头第一个函数是主函数,主函数只能有一个,其余的函数均为子函数。
程序运行结果如图所示
在文件中,子函数的参数值是通过主函数中的函数调用传过去的,子函数无法自动获取主函数中的参数值。我们也可以通过定义全局变量来使子函数获得参数值,如global b c d e。