- 1、本文档共90页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MATLAB讲稿_3-简单编程剖析
简单程序的编写 在工作区双击dept,查看内部结构 简单程序的编写 3.3 函数句柄 3.3.1 句柄 在C语言的程序中,句柄是一个无符号整数,全局唯一,用以唯一标识一个对象,就像身份证号一样。通过句柄,可以查找到对应的对象。 在matlab中,函数句柄是一类特殊的数据类型,变量名称是function_handle。 简单程序的编写 3.3.2 函数句柄的使用技巧 使用函数句柄,可以更为灵活的编写程序。 function example_drawCurve(f,x) y=f(x); plot(x,y); 在命令窗口输入 x=-pi:0.1:pi; f=@sin; example_drawCurve(f,x) 观看运行结果 简单程序的编写 继续在命令窗口输入 f=@cos; example_drawCurve(f,x) 观看运行结果 编写一个新的函数 function y=example_circle(x) xi=x./max(x); y=max(x).*(1-abs(xi).^2); 在命令窗口输入 f=@example_circle example_drawCurve(f,x) 观看运行结果 简单程序的编写 从上面的例子可以看到函数句柄给编程带来的灵活性,我们可以编写更为通用、复用度更高的程序。 matlab中的函数句柄与C中的函数指针有着相似的作用。 3.3.3 作业 使用函数句柄编写程序,实现计算定积分的功能。要求把函数、步长、起始值、终止值参数化。 简单程序的编写 4、类型转换的补充 简单程序的编写 4.1 进制之间的转换 bin2dec、dec2bin dec2hex、hex2dec bin2dec(101010) ans = 42 dec2bin(42) ans = 101010 简单程序的编写 hex2dec(3a) ans = 58 dec2hex(58) ans = 3A 简单程序的编写 4.2 字符串和数值之间的转换函数 4.2.1 数值转换为字符串 int2str(a) num2str(a) a=123 a = 123 b=int2str(a) b = 123 c=class(b) c = char 简单程序的编写 a=1.23; b=num2str(a) b = 1.23 c=class(b) c = char 简单程序的编写 4.2.2 字符串转换为数值 str2num(a) a=1.23 a = 1.23 b=str2num(a) b = 1.23000000000000 简单程序的编写 4.2.3 根据asc码把数值转换为字符的函数 char(a) a=97:(97+26-1); b=char(a) b = abcdefghijklmnopqrstuvwxyz c=65:(65+26-1); d=char(c) d = ABCDEFGHIJKLMNOPQRSTUVWXYZ 简单程序的编写 4.2.4 有计算功能的转换函数 4.2.4.1 字符串转换为表达式或语句,并在工作空间中查找变量计算表达式的值,执行表达式或语句。 eval(a) x=5; eval(3*x^2+2*x+5) ans = 90 简单程序的编写 for n = 1:3 eval([M num2str(n) = magic(n)]) end M1 = 1 M2 = 1 3 4 2 M3 = 8 1 6 3 5 7 4 9 2 简单程序的编写 4.2.4.2 字符串转换为内联函数,可以在后续程序中调用 inline(a) f=inline(pi*r^2) f = Inline function: f(r) = pi*r^2 f(5) ans = 78.53981633974483 简单程序的编写 MATLAB中的内联函数借鉴了C语言中的内联函数,在C语言中,内联函数是通过编译器控制来实现的,它只在需要用到的时候,内联函数像宏一样的展开,所以取消了函数的参数压栈,减少了调用的时间和空间开销。在MATLAB中也有类似的性质。由于内联函数是储存于内存中而不是在M文件中,省去了文件访问的时间,加快了程序的运行效率。 简单程序的编写 4.3 字符串处理函数 blanks(n) ??返回n个空字符deblank(s) ??移除字符串尾部包含的空字符findstr(s1,s2) 在s1中搜索子串s2ischar(s) ??判
文档评论(0)