- 10
- 0
- 约2.11千字
- 约 5页
- 2017-08-06 发布于北京
- 举报
函数调用是使主程序简明清晰的重要工具,在很大程度上简化了程序的复杂程度,也方便于不同程序使用相同模块的调用。下面主要介绍:函数文件+调用命令文件:需单独定义一个自定义函数的M文件这种方法很简单,定义好输入输出就可以自由调用函数。(1)定义函数新建一个m文件在m文件里面第一行输入function [输出值]=(任何字母)(输入变量),输入变量和输出值个数不限,根据自己需要定义,接着定义你要实现的功能,最后保存这个m文件,注意:这个m文件的名字就是后面程序调用的名称,同时主程序和函数文件必须保存在同一个文件夹中,而且可以在函数中再嵌套其它函数。(2)调用函数[输出值]=函数保存的文件名(输入变量)注意,如果输出值只有一个,可以不用中括号,如果两个以上就不必须使用,否则只输出第一个值,而且采用小括号会报错。实例编写一个解方程的程序:定义函数:function [x,y]=equal(a,b,c)d=b^2-4*a*c;x=(-b+sqrt(d))/(2*a);y=(-b-sqrt(d))/(2*a);文件保存为equal主程序调用:[r1 r2]=myfunction(2,3,-7)结果:r1 =1.2656r2 = -2.7656还是上面的例子,实现函数中调用函数:定义函数1:function [testfun]=supple(j)testfun =j+5;保存文件为supple(此处不一定要和函数名相同)定义函数2:function [x,y]=equal(a,b,c)c=supple(c); %调用了一个函数d=b^2-4*a*c;x=(-b+sqrt(d))/(2*a);y=(-b-sqrt(d))/(2*a);文件保存为equal主程序调用:[r1 r2]=myfunction(2,3,-12) %(将c有-7改为-12)结果:r1 =1.2656r2 = -2.7656 %计算结果相同,说明函数中调用函数成功。下面是其它几种常用的函数定义和调用方法:1、函数文件+调用函数文件:定义多个M文件:%?调用函数文件:myfile.mclearclcfor t=1:10y=mylfg(t);fprintf(‘%4d^(1/3)=%6.4f\n’,t,y);end%自定义函数文件: mylfg.mfunction y=mylfg(x)?%注意:函数名(mylfg)必须与文件名(mylfg.m)一致Y=x^(1/3);注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中。2、函数文件+子函数:定义一个具有多个子函数的M文件%命令文件:funtry2.mfunction []=funtry2()for t=1:10y=lfg2(t)fprintf(‘%4d^(1/3)=%6.4f\n’);Endfunction y=lfg2(x)Y= x^(1/3);%注:自定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用。3、Inline:无需M文件,直接定义;%inline命令用来定义一个内联函数:f=inline(‘函数表达式’, ‘变量1’,’变量2’,……)。调用方式:y=f(数值列表)?%注意:代入的数值列表顺序应与inline()定义的变量名顺序一致。例如:f=inline(‘x^2+y’,’x’,’y’);z=f(2,3)Ans=7注:这种函数定义方式是将它作为一个内部函数调用。特点是,它是基于Matlab的数值运算内核的,所以它的运算速度较快,程序效率更高。缺点是,该方法只能对数值进行代入,不支持符号代入,且对定义后的函数不能进行求导等符号运算。例:ClearClcf=’x^2’;Syms x g;g=x^2;h=inline(‘x^2’,’x’);4、Syms+subs:?无需M文件,直接定义;用syms定义一个符号表达式,用subs调用:Syms f x?%定义符号f=1/(1+x^2);?%定义符号表达式subs(f, ‘x’,?代替x的数值或符号)注:对于在syms中已经定义过的符号变量,在subs中进行替代时,单引号可以省略。但是,如果在syms后又被重新定义为其他类型,则必须加单引号,否则不可替换。这种函数定义方法的特点是,可以用符号进行替换Syms f xf=1/(1+x^2);subs(f, ‘x’,’y^2’)ans=1/(1+(y^2)^2)注:该方法的缺点是,由于使用符号运算内核,运算速度会大大降低。5、字符串+subs:无需M文件,直接定义.直接定义一个字符串,用subs命令调用。例如:f=’1/(1+x^2)’?%定义字符串z=subs(f,’x’,2)g=subs(f,’x’,’y^
您可能关注的文档
最近下载
- DB11_T 2478-2025 碘-131核素治疗病房辐射安全与防护要求.pdf VIP
- NB-T-47018.1~47018.5-2017-承压设备用焊接材料订货技术条件+编制说明_.pdf VIP
- DBJ51_T 233-2023 四川省光伏建筑一体化应用技术标准(CTP).pdf VIP
- DB11_T 2492-2025 消防通信指挥系统应用规范 (1).pdf VIP
- 大众电影封面全集1950-1991170p.doc VIP
- DB11_T 136-2025 汽车维护竣工出厂技术条件.pdf VIP
- DB11_T 783-2025 建设用地土壤修复与风险管控效果评估技术规范.pdf VIP
- DB11_T 1312-2025 预制混凝土构件质量控制标准.pdf VIP
- DB11_T 1322.81-2025 安全生产等级评定技术规范 第81部分:歌舞娱乐场所.pdf VIP
- DB11_T 1322.82-2025 安全生产等级评定技术规范 第82部分:营业性演出场所.pdf VIP
原创力文档

文档评论(0)