- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数学软件 Matlab 自定义函数的方式 函数文件 子函数 内联函数 匿名函数 匿名函数 符号表达式 上机作业 上机作业 * * —— 自定义函数的几种方式 Matlab 中自定义函数的常见方式 脚本文件/函数文件+ 函数文件 函数文件 + 子函数 内联函数和匿名函数 符号表达式 + subs % 脚本文件:myfile1.m clear for t=1:10; y=mylfg(t); fprintf(%4d^(1/3) = %6.4f\n,t,y); end % 函数文件:mylfg.m function y = mylfg(x) y=x^(1/3); 函数必须单独写一个文件!不能与命令文件写在同一个文件中! 函数名与文件名必须一致! 调用函数时要注意实参与形参的匹配! 方式一:命令文件/函数文件 + 函数文件 % 函数文件:funtry2.m function []=funtry2() for t=1:10 y=lfg2(t); fprintf(%4d^(1/3) = %6.4f\n,t,y); end function y=lfg2(x) % 子函数 y=x^(1/3); 函数文件中可以定义一个或多个子函数,此时我们称该函数为主函数,子函数只能被主函数或同一个函数文件中的其它子函数调用! 方式二:函数文件 + 子函数 函数可以使用 end 表示结束,但这不是必须的。 f=inline(函数表达式,变量1,变量2,...) y=f(实参列表) 实参列表应与定义时的变量顺序保持一致 例: 方式三:内联函数和匿名函数 内联函数 调用方式 f=inline(x^2+y,x,y) y=f(2,3) 根据实际情况,定义函数时可能需要使用数组运算 例: 方式三:内联函数和匿名函数 匿名函数 + 函数句柄 f = @ (变量列表) 表达式 y=f(实参列表) 调用方式 f = @(x,y) x^2 + y; y = f(2,3) 实参列表应与定义时的变量列表保持一致 根据实际情况,可能需要使用数组运算 这种函数定义方式是将 f 作为一个内部函数调用。其特点是:调用方式最接近于我们平时对函数的定义,使程序更具可读性。同时由于它是基于 Matlab 的数值计算内核的,所以它的运算速度较快,程序更有效率。 这种定义方式的缺点: 只能定义一些简单的函数; 不支持符号运算。 首先定义一个符号表达式/函数,用 subs 命令调用 syms x f=1/(1+x^2); subs(f,x,代替 x 的数值或符号) 方式四:符号表达式 + subs 优点:可以进行符号计算 缺点:由于使用符号运算内核,运算速度会大大降低。 subs(f,{x,y},{代替 x 的数值或符号,代替 y 的数值或符号}) 1、命令文件/函数文件 + 函数文件方式的习题: (1)定义一个函数文件ptop.m,用于求平面上两点的距离; (2)编写主程序m10_1.m,先随机生成5对不超过10的均匀分布的有序数对作为一个五边形ABCDE的顶点(要求使用随机数种子,使得数对“伪随机”,从而对每次实验来说是相同的数对)再调用函数ptop.m求出五边形ABCDE的周长。 3、列举出教材中使用内联函数的一个例子(写出程序m10_3.m ,并用注解语句注明在教材中的页码) 5、列举出教材中使用符号表达式 + subs的一个例子(写出程序m10_5.m ,并用注解语句注明在教材中的页码) 4、列举出教材中使用匿名函数的一个例子(写出程序m10_4.m ,并用注解语句注明在教材中的页码) 2、函数文件 + 子函数方式的习题: 题目要求同上,但必须编写主函数m10_2.m来计算五边形ABCDE的周长,其中要求调用求平面上两点的距离的子函数p2p.m。
文档评论(0)