《matlab自定义函数.ppt》由会员分享,可在线阅读,更多相关《matlab自定义函数.ppt(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数学实验Matlab 自定义函数q Matlab 自定义函数的五种方式自定义函数的五种方式u 命令文件命令文件/函数文件函数文件+函数文件函数文件 多个多个 M 文件文件自定义函数的五种方式自定义函数的五种方式u 函数文件函数文件+子函数子函数 一个一个 M 文件文件u inline 无需无需 M 文件文件u syms +subs 方式方式 无需无需 M 文件文件u 字符串字符串+subs 方式方式 无需无需 M 文件文件%命令命令/函数文件:函数文件:myfile1.mclearfor t=1:10;y=mylfg(t);fprintf(%4d(1/3)=%6.4fn,t,y);end%函数
2、文件:函数文件:mylfg.mfunction y=mylfg(x)y=x(1/3);函数必须单独写一个文件!函数必须单独写一个文件!不能与命令文件写在同一个文件中!不能与命令文件写在同一个文件中!函数名与文件名必须一致!函数名与文件名必须一致!调用函数时要注意调用函数时要注意实参实参与与形参形参的匹配!的匹配!自定义函数方式(一)自定义函数方式(一)q 方式(方式(1):):命令文件命令文件/函数文件函数文件+函数文件函数文件自定义函数方式(二)自定义函数方式(二)%函数文件:函数文件:funtry2.m function=funtry2()for t=1:10 y=lfg2(t);fpri
3、ntf(%4d(1/3)=%6.4fn,t,y);endfunction y=lfg2(x)%子函数子函数y=x(1/3);函数文件中可以定义一个或多个函数文件中可以定义一个或多个子函数子函数,此时我们称该函,此时我们称该函数为数为主函数主函数,子函数,子函数只能被主函数或同一个函数文件中的被主函数或同一个函数文件中的其它子函数调用!其它子函数调用!q 方式(方式(2):):函数文件函数文件+子函数子函数f=inline(函数表达式函数表达式,变量变量1 1,变量变量2 2,.)y=f(数值列表数值列表)代入的代入的数值列表数值列表顺序应与定义时的顺序应与定义时的变量名变量名顺序一致顺序一致例
4、:例:自定义函数方式(三)自定义函数方式(三)q 方式(方式(3):):inline+命令命令/函数文件函数文件l inline 命令可以用来定义一个命令可以用来定义一个内联函数内联函数l 调用方式:调用方式:u 这种函数定义方式是将这种函数定义方式是将 f 作为一个内部函数调用。其特作为一个内部函数调用。其特点是:调用方式点是:调用方式最接近于我们平时对函数的定义最接近于我们平时对函数的定义,使程序,使程序更具可读性。同时由于它是基于更具可读性。同时由于它是基于 Matlab 的数值计算内核的,的数值计算内核的,所以它的所以它的运算速度较快运算速度较快,程序更有效率。,程序更有效率。u 这种
5、定义方式的缺点:这种定义方式的缺点:l 定义一个内联函数用去的内存空间比相同条件下其他定义一个内联函数用去的内存空间比相同条件下其他的方法要大得多。的方法要大得多。l 该方法该方法只能对数值进行代入只能对数值进行代入,不支持符号代入,并且,不支持符号代入,并且对于定义后的函数对于定义后的函数不能进行求导等符号运算不能进行求导等符号运算。自定义函数方式(三)自定义函数方式(三)自定义函数方式(三)自定义函数方式(三)%函数文件:函数文件:function=funtry3()lfg=inline(x.(1/3);%表达式两端的单引号不可缺少表达式两端的单引号不可缺少fid=fopen(myfile
6、3.txt,w);for t=1:50;y=lfg(t);fprintf(fid,%4d(1/3)=%6.4fn,t,y);endfclose(fid);ezplot(lfg,0,50)diff(lfg,x)自定义函数方式(三)自定义函数方式(三)X注:注:对于在对于在 syms 中已经定义过符号变量,在中已经定义过符号变量,在 subs 中进行中进行替代时,单引号可以省略。但如果在替代时,单引号可以省略。但如果在 syms 后又被重新后又被重新定义为其它类型,则必须加单引号,否则不可替换。定义为其它类型,则必须加单引号,否则不可替换。l syms 定义一个定义一个符号表达式符号表达式,用,用
7、 subs 命令调用命令调用syms f x%定义符号定义符号f=1/(1+x2);%定义符号表达式定义符号表达式subs(f,x,代替代替 x 的数值或符号的数值或符号)自定义函数方式(四)自定义函数方式(四)q 方式(方式(4):):syms +subsu 这种函数定义方法的一个特点是可以用符号进行替换这种函数定义方法的一个特点是可以用符号进行替换u 该方法的缺点也是明显的:由于使用符号运算内核,该方法的缺点也是明显的:由于使用符号运算内核,运算速度会大大降低。运算速度会大大降低。自定义函数方式(四)自定义函数方式(四)注:注:此处此处 x 的单引号不可省略。本函数方式可以代入字符,的单引
8、号不可省略。本函数方式可以代入字符,但字符不能参与运算,否则将自行转化成该字符的但字符不能参与运算,否则将自行转化成该字符的 ASCII 码运算,这与我们想要的结果可能会大相径庭。码运算,这与我们想要的结果可能会大相径庭。l 直接定义一个字符串,用直接定义一个字符串,用 subs 命令完成调用。命令完成调用。例:例:f=1/(1+x2)%定义字符串定义字符串z=subs(f,x,2)g=subs(f,x,y2)优点:占内存最少,定义格式方便自由。优点:占内存最少,定义格式方便自由。缺点:是无法对字符进行符号转化。缺点:是无法对字符进行符号转化。自定义函数方式(五)自定义函数方式(五)q 方式(方式(5):):字符串字符串 +subsl subs 命令的一种比较方便的调用方法:命令的一种比较方便的调用方法:当所要替代的符号在调用前都已经有了数值定义当所要替代的符号在调用前都已经有了数值定义,则则可以直接调用:可以直接调用:subs(f)例:例:自定义函数方式(五)自定义函数方式(五)u 关于关于 subs 的一个注解的一个注解