欢迎来到天天文库
浏览记录
ID:38842735
大小:313.82 KB
页数:12页
时间:2019-06-20
《matlab自定义函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数学实验Matlab自定义函数Matlab自定义函数的五种方式命令文件/函数文件+函数文件-多个M文件自定义函数的五种方式函数文件+子函数-一个M文件inline-无需M文件syms+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、注意实参与形参的匹配!自定义函数方式(一)方式(1):命令文件/函数文件+函数文件自定义函数方式(二)%函数文件:funtry2.mfunction[]=funtry2()fort=1:10y=lfg2(t);fprintf('%4d^(1/3)=%6.4f',t,y);endfunctiony=lfg2(x)%%子函数y=x^(1/3);函数文件中可以定义一个或多个子函数,此时我们称该函数为主函数,子函数只能被主函数或同一个函数文件中的其它子函数调用!方式(2):函数文件+子函数f=inline('函数表达式','变量1','变量2',...)y=f(数值列表)代
3、入的数值列表顺序应与定义时的变量名顺序一致例:自定义函数方式(三)方式(3):inline+命令/函数文件inline命令可以用来定义一个内联函数调用方式:这种函数定义方式是将f作为一个内部函数调用。其特点是:调用方式最接近于我们平时对函数的定义,使程序更具可读性。同时由于它是基于Matlab的数值计算内核的,所以它的运算速度较快,程序更有效率。这种定义方式的缺点:定义一个内联函数用去的内存空间比相同条件下其他的方法要大得多。该方法只能对数值进行代入,不支持符号代入,并且对于定义后的函数不能进行求导等符号运算。自定义函数方式(三)自定义函数方式(三)%函数文件:func
4、tion[]=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])diff(lfg,'x')自定义函数方式(三)X注:对于在syms中已经定义过符号变量,在subs中进行替代时,单引号可以省略。但如果在syms后又被重新定义为其它类型,则必须加单引号,否则不可替换。syms定义一个符号表达式,用su
5、bs命令调用symsfx%定义符号f=1/(1+x^2);%定义符号表达式subs(f,'x',代替x的数值或符号)自定义函数方式(四)方式(4):syms+subs这种函数定义方法的一个特点是可以用符号进行替换该方法的缺点也是明显的:由于使用符号运算内核,运算速度会大大降低。自定义函数方式(四)注:此处x的单引号不可省略。本函数方式可以代入字符,但字符不能参与运算,否则将自行转化成该字符的ASCII码运算,这与我们想要的结果可能会大相径庭。直接定义一个字符串,用subs命令完成调用。例:f='1/(1+x^2)'%定义字符串z=subs(f,'x',2)g=subs(
6、f,'x','y^2')优点:占内存最少,定义格式方便自由。缺点:是无法对字符进行符号转化。自定义函数方式(五)方式(5):字符串+subssubs命令的一种比较方便的调用方法:当所要替代的符号在调用前都已经有了数值定义,则可以直接调用:subs(f)例:自定义函数方式(五)关于subs的一个注解
此文档下载收益归作者所有