matlab函数定义和调用问题

matlab函数定义和调用问题

ID:40753057

大小:20.48 KB

页数:5页

时间:2019-08-07

matlab函数定义和调用问题_第1页
matlab函数定义和调用问题_第2页
matlab函数定义和调用问题_第3页
matlab函数定义和调用问题_第4页
matlab函数定义和调用问题_第5页
资源描述:

《matlab函数定义和调用问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、函数调用是使主程序简明清晰的重要工具,在很大程度上简化了程序的复杂程度,也方便于不同程序使用相同模块的调用。下面主要介绍:函数文件+调用命令文件:需单独定义一个自定义函数的M文件这种方法很简单,定义好输入输出就可以自由调用函数。(1)定义函数新建一个m文件在m文件里面第一行输入function[输出值]=(任何字母)(输入变量),输入变量和输出值个数不限,根据自己需要定义,接着定义你要实现的功能,最后保存这个m文件,注意:这个m文件的名字就是后面程序调用的名称,同时主程序和函数文件必须保存在同一个文件夹中,而且可以

2、在函数中再嵌套其它函数。(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主程序调用:[r1r2]=myfunction(2,3,-7)结果:r1=1.2656r2=-2.7656还是上面的

3、例子,实现函数中调用函数:定义函数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主程序调用:[r1r2]=myfunction(2,3,-12)%(将c有-7改为-12)结果:r1=1.2656r2=-

4、2.7656%计算结果相同,说明函数中调用函数成功。下面是其它几种常用的函数定义和调用方法:1、函数文件+调用函数文件:定义多个M文件:% 调用函数文件:myfile.mclearclcfort=1:10y=mylfg(t);fprintf(‘%4d^(1/3)=%6.4f’,t,y);end%自定义函数文件:mylfg.mfunctiony=mylfg(x) %注意:函数名(mylfg)必须与文件名(mylfg.m)一致Y=x^(1/3);注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写

5、在同一个M文件中。2、函数文件+子函数:定义一个具有多个子函数的M文件%命令文件:funtry2.mfunction[]=funtry2()fort=1:10y=lfg2(t)fprintf(‘%4d^(1/3)=%6.4f’);Endfunctiony=lfg2(x)Y=x^(1/3);%注:自定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用。3、Inline:无需M文件,直接定义;%inline命令用来定义一个内联函数:f=inline

6、(‘函数表达式’,‘变量1’,’变量2’,……)。调用方式:y=f(数值列表) %注意:代入的数值列表顺序应与inline()定义的变量名顺序一致。例如:f=inline(‘x^2+y’,’x’,’y’);z=f(2,3)Ans=7注:这种函数定义方式是将它作为一个内部函数调用。特点是,它是基于Matlab的数值运算内核的,所以它的运算速度较快,程序效率更高。缺点是,该方法只能对数值进行代入,不支持符号代入,且对定义后的函数不能进行求导等符号运算。例:ClearClcf=’x^2’;Symsxg;g=x^2;h=i

7、nline(‘x^2’,’x’);4、Syms+subs: 无需M文件,直接定义;用syms定义一个符号表达式,用subs调用:Symsfx %定义符号f=1/(1+x^2); %定义符号表达式subs(f,‘x’, 代替x的数值或符号)注:对于在syms中已经定义过的符号变量,在subs中进行替代时,单引号可以省略。但是,如果在syms后又被重新定义为其他类型,则必须加单引号,否则不可替换。这种函数定义方法的特点是,可以用符号进行替换Symsfxf=1/(1+x^2);subs(f,‘x’,’y^2’)ans=1

8、/(1+(y^2)^2)注:该方法的缺点是,由于使用符号运算内核,运算速度会大大降低。5、字符串+subs:无需M文件,直接定义.直接定义一个字符串,用subs命令调用。例如:f=’1/(1+x^2)’ %定义字符串z=subs(f,’x’,2)g=subs(f,’x’,’y^2’)注:优点是,占用内存最少,定义格式方面自由。缺点是,无法对字符进行符号转化。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。