Matlab函数定义和调用

Matlab函数定义和调用

ID:38842097

大小:392.82 KB

页数:12页

时间:2019-06-20

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

《Matlab函数定义和调用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数学实验Matlab自定义函数Matlab自定义函数的五种方式命令文件/函数文件+函数文件:多个M文件自定义函数的五种方式函数文件+子函数:一个M文件inline:无需M文件符号表达式+subs方式:无需M文件字符串+subs方式:无需M文件%命令/函数文件:myfile1.mclearfort=1:10;y=mylfg(t);fprintf('%4d^(1/3)=%6.4f',t,y);end%函数文件:mylfg.mfunctiony=mylfg(x)y=x^(1/3);函数必须单独写一个文件! 不能

2、与命令文件写在同一个文件中!函数名与文件名必须一致!调用函数时要注意实参与形参的匹配!自定义函数方式(一)方式一:命令文件/函数文件+函数文件自定义函数方式(二)%函数文件:funtry2.mfunction[]=funtry2()fort=1:10y=lfg2(t);fprintf('%4d^(1/3)=%6.4f',t,y);endfunctiony=lfg2(x)%%子函数y=x^(1/3);函数文件中可以定义一个或多个子函数,此时我们称该函数为主函数,子函数只能被主函数或同一个函数文件中的其它子函

3、数调用!方式二:函数文件+子函数f=inline('函数表达式','变量1','变量2',...)y=f(数值列表)代入的数值列表顺序应与定义时的变量名顺序一致例:自定义函数方式(三)方式三:inline+命令/函数文件inline命令可以用来定义一个内联函数调用方式:这种函数定义方式是将f作为一个内部函数调用。其特点是:调用方式最接近于我们平时对函数的定义,使程序更具可读性。同时由于它是基于Matlab的数值计算内核的,所以它的运算速度较快,程序更有效率。这种定义方式的缺点:定义一个内联函数用去的内存空间比

4、相同条件下其他的方法要大得多。该方法只能对数值进行代入,不支持符号代入,并且对于定义后的函数不能进行求导等符号运算。自定义函数方式(三)自定义函数方式(三)%函数文件:function[]=funtry3()lfg=inline('x.^(1/3)');%表达式两端的单引号不可缺少fid=fopen('myfile3.txt','w');fort=1:50;y=lfg(t);fprintf(fid,'%4d^(1/3)=%6.4f',t,y);endfclose(fid);ezplot(lfg,[0,50

5、])diff(lfg,'x')自定义函数方式(三)X注:对于在syms中已经定义过符号变量,在subs中进行替代时,单引号可以省略。但如果在syms后又被重新定义为其它类型,则必须加单引号,否则不可替换。syms定义一个符号表达式,用subs命令调用symsfx%定义符号f=1/(1+x^2);%定义符号表达式subs(f,'x',代替x的数值或符号)自定义函数方式(四)方式四:syms+subs这种函数定义方法的一个特点是可以用符号进行替换该方法的缺点也是明显的:由于使用符号运算内核,运算速度会大大降低。自

6、定义函数方式(四)注:此处x的单引号不可省略。本函数方式可以代入字符,但字符不能参与运算,否则将自行转化成该字符的ASCII码运算,这与我们想要的结果可能会大相径庭。直接定义一个字符串,用subs命令完成调用。例:f='1/(1+x^2)'%定义字符串z=subs(f,'x',2)g=subs(f,'x','y^2')优点:占内存最少,定义格式方便自由。自定义函数方式(五)方式五:字符串+subssubs命令的一种比较方便的调用方法:当所要替代的符号在调用前都已经有了数值定义,则可以直接调用:subs(f)例

7、:自定义函数方式(五)关于subs的一个注解

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

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

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