Matlab函数定义和调用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数学实验Matlab自定义函数Matlab自定义函数的五种方式命令文件/函数文件+函数文件:多个M文件自定义函数的五种方式函数文件+子函数:一个M文件inline:无需M文件符号表达式+subs方式:无需M文件字符串+subs方式:无需M文件%命令/函数文件:myfile1.mclearfort=1:10;y=mylfg(t);fprintf('%4d^(1/3)=%6.4f\n',t,y);end%函数文件:mylfg.mfunctiony=mylfg(x)y=x^(1/3);函数必须单独写一个文件!不能与命令文件写在同一个文件中!函数名与文件名必须一致!调用函数时要注意实参与形参的匹配!自定义函数方式(一)方式一:命令文件/函数文件+函数文件自定义函数方式(二)%函数文件:funtry2.mfunction[]=funtry2()fort=1:10y=lfg2(t);fprintf('%4d^(1/3)=%6.4f\n',t,y);endfunctiony=lfg2(x)%%子函数y=x^(1/3);函数文件中可以定义一个或多个子函数,此时我们称该函数为主函数,子函数只能被主函数或同一个函数文件中的其它子函数调用!方式二:函数文件+子函数f=inline('函数表达式','变量1','变量2',...)y=f(数值列表)代入的数值列表顺序应与定义时的变量名顺序一致例:自定义函数方式(三)方式三:inline+命令/函数文件inline命令可以用来定义一个内联函数调用方式:这种函数定义方式是将f作为一个内部函数调用。其特点是:调用方式最接近于我们平时对函数的定义,使程序更具可读性。同时由于它是基于Matlab的数值计算内核的,所以它的运算速度较快,程序更有效率。这种定义方式的缺点:定义一个内联函数用去的内存空间比相同条件下其他的方法要大得多。该方法只能对数值进行代入,不支持符号代入,并且对于定义后的函数不能进行求导等符号运算。自定义函数方式(三)自定义函数方式(三)%函数文件: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\n',t,y);endfclose(fid);ezplot(lfg,[0,50])diff(lfg,'x')自定义函数方式(三)X注:对于在syms中已经定义过符号变量,在subs中进行替代时,单引号可以省略。但如果在syms后又被重新定义为其它类型,则必须加单引号,否则不可替换。syms定义一个符号表达式,用subs命令调用symsfx%定义符号f=1/(1+x^2);%定义符号表达式subs(f,'x',代替x的数值或符号)自定义函数方式(四)方式四:syms+subs这种函数定义方法的一个特点是可以用符号进行替换该方法的缺点也是明显的:由于使用符号运算内核,运算速度会大大降低。自定义函数方式(四)注:此处x的单引号不可省略。本函数方式可以代入字符,但字符不能参与运算,否则将自行转化成该字符的ASCII码运算,这与我们想要的结果可能会大相径庭。直接定义一个字符串,用subs命令完成调用。例:f='1/(1+x^2)'%定义字符串z=subs(f,'x',2)g=subs(f,'x','y^2')优点:占内存最少,定义格式方便自由。自定义函数方式(五)方式五:字符串+subssubs命令的一种比较方便的调用方法:当所要替代的符号在调用前都已经有了数值定义,则可以直接调用:subs(f)例:自定义函数方式(五)关于subs的一个注解

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功