简单程序的编写 在工作区双击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)