华东师范大学:《计算机应用基础》课程教学资源(课件讲稿)第五讲 MATLAB编程基础(函数)

数学软件Matlab Matlab编程(函数) 1
1 数学软件 Matlab —— Matlab 编程(函数)

本讲主要内容 ■什么是函数文件 ■如何编写函数文件 ■j 递归函数 ■函数参数的可调性 ■局部变量与全局变量 ■子函数 ■函数句柄、内联函数、匿名函数 2
2 本讲主要内容 什么是函数文件 如何编写函数文件 递归函数 函数参数的可调性 局部变量与全局变量 子函数 函数句柄、内联函数、匿名函数

Matlab编程 口M文件根据调用方式的不同可以分为两类: ● Script:脚本文件/命令文件 ●直接输入文件名即可运行 ●Function:函数文件 ●供其它M文件调用,通常带输入参数和输出参数 3
3 M 文件根据调用方式的不同可以分为两类: Script:脚本文件/命令文件 Function:函数文件 Matlab 编程 直接输入文件名即可运行 供其它M文件调用,通常带输入参数和输出参数

函数文件 ▣函数文件一般格式 function输出形参列表=函数名(形参列表) %注释说明部分(可选) 函数体语句(必须) ●第一行为引导行,表示该M文件是函数文件 ●函数名的命名规则与变量名相同(必须以字母开头) 。当输出形参多于一个时,用方括号括起来 ● 函数文件名必须与函数名一致 函数必须是一个单独的M文件 4
4 function 输出形参列表=函数名(形参列表) % 注释说明部分(可选) 函数体语句(必须) 第一行为引导行,表示该 M文件是函数文件 函数名的命名规则与变量名相同 ( 必须以字母开头 ) 当输出形参多于一个时,用方括号括起来 函数文件 函数文件一般格式 函数文件名必须与函数名一致 函数必须是一个单独的 M文件

编程示例 例:将华氏温度转化为摄氏温度: C= 9f-32) ●脚本文件(E2cs.m): clear; f=input('Please input f:'); c=5*(f-32)/9; ●函数文件(E2cf.m): function c f2cf(f) c=5*(f-32)/9;
5 函数文件(f2cf.m): 5 ( 32) 9 例:将华氏温度转化为摄氏温度: c f = − 编程示例 clear; f=input('Please input f:'); c=5*(f-32)/9; 脚本文件 (f2cs.m): function c = f2cf(f) c=5*(f-32)/9;

函数文件举例 例:交换两个变量的值myswap.m function [a,b]myswap(x,y) % swap x and y a =y5 b xj 。有两个输入参数和两个输出参数 6
6 函数文件举例 function [a,b] = myswap(x,y) % swap x and y a = y; b = x; 例:交换两个变量的值 myswap.m 有两个输入参数和两个输出参数

函数文件举例 例:打印杨辉三角形printyh,m function printyh(n) %打印杨辉三角形,本函数没有输出参数 yh 1;disp(yh); if n==1,return;end yh [1,1];disp(yh); for k =3 n yh_old yh;k2 ceil(k/2); for i 2 k2 yh(i)=yh_old(i-1)+yh_old(i); end yh(k2+1:k)=yh(k-k2:-1:1);disp(yh)j end ●可以没有输入参数或输出参数 7
7 function printyh(n) % 打印杨辉三角形, 本函数没有输出参数 yh = 1; disp(yh); if n==1, return; end yh = [1,1]; disp(yh); for k = 3 : n yh_old = yh; k2 = ceil(k/2); for i = 2 : k2 yh(i) = yh_old(i-1) + yh_old(i); end yh(k2+1:k) = yh(k-k2:-1:1); disp(yh); end 函数文件举例 例:打印杨辉三角形 printyh.m 可以没有输入参数或输出参数

函数调用 口函数调用的一般格式 输出实参列表=函数名(输入实参列表) ●函数调用时,实参的顺序应与函数定义时形参的顺序一致 ●实参与形参之间的结合是通过值传递实现的 ·函数可以嵌套调用,即一个函数可以被其它函数调用, 甚至可以被它自身调用,此时称为递归调用 ●函数所传递的参数具有可调性,Matlab用两个永久变量 nargin和nargout分别记录调用该函数时的输入实参 和输出实参的个数 8
8 函数调用的一般格式 输出实参列表=函数名(输入实参列表) 函数调用时,实参的顺序应与函数定义时形参的顺序一致 实参与形参之间的结合是通过值传递实现的 函数可以嵌套调用,即一个函数可以被其它函数调用, 甚至可以被它自身调用,此时称为递归调用 函数所传递的参数具有可调性,Matlab 用两个永久变量 nargin 和 nargout 分别记录调用该函数时的输入实参 和输出实参的个数 函数调用

递归函数举例 例:利用函数的递归调用计算! 1, n=1 =:n-g3》 %函数文件myfactor.m function y=myfactor(n) if(n<=1) y=1; else y=n*myfactor(n-1)3 end 9
9 1, 1 ! ( 1)!, 1 n n nn n = = ⋅− > % 函数文件 myfactor.m function y=myfactor(n) if (n<=1) y=1; else y=n*myfactor(n-1); end 例:利用函数的递归调用计算 n! 递归函数举例

递归函数举例 例:计算1!+2!+.+10! % main.m % clear; s=0; n=10; for i =1:n s =s myfactor(i); end fprintf('s=‰g\n',s) 10
10 % main.m % clear; s = 0; n = 10; for i = 1 : n s = s + myfactor(i); end fprintf(' s=%g \n',s) 例:计算 1! + 2! + … + 10! 递归函数举例
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 华东师范大学:《计算机应用基础》课程教学资源(课件讲稿)第五讲 MATLAB编程基础(脚本).pdf
- 华东师范大学:《计算机应用基础》课程教学资源(课件讲稿)第四讲 MATLAB数据类型.pdf
- 华东师范大学:《计算机应用基础》课程教学资源(课件讲稿)第三讲 常见空间曲线与曲面做图(标准方程及Matlab作图).pdf
- 华东师范大学:《计算机应用基础》课程教学资源(课件讲稿)第三讲 MATLAB绘图.pdf
- 华东师范大学:《计算机应用基础》课程教学资源(课件讲稿)第二讲 MATLAB符号 ——Matlab 符号.pdf
- 华东师范大学:《计算机应用基础》课程教学资源(课件讲稿)第一讲 数学软件MATLAB基础.pdf
- 华东师范大学:《计算机应用基础》课程教学资源(课件讲稿)MATLAB简要教程.pdf
- 华东师范大学:《Linux操作系统》课程教学资源(课件讲稿)Linux复习.pdf
- 华东师范大学:《Linux操作系统》课程教学资源(课件讲稿)第十二讲 Shell脚本编程.pdf
- 华东师范大学:《Linux操作系统》课程教学资源(课件讲稿)第十一讲 Shell脚本编程——Shell变量.pdf
- 华东师范大学:《Linux操作系统》课程教学资源(课件讲稿)第十讲 Shell的输入与输出.pdf
- 华东师范大学:《Linux操作系统》课程教学资源(课件讲稿)第九讲 文本过滤.pdf
- 华东师范大学:《Linux操作系统》课程教学资源(课件讲稿)第八讲 文本编辑器vim使用指南.pdf
- 华东师范大学:《Linux操作系统》课程教学资源(课件讲稿)第七讲 正则表达式.pdf
- 华东师范大学:《Linux操作系统》课程教学资源(课件讲稿)第六讲 Linux进程控制.pdf
- 华东师范大学:《Linux操作系统》课程教学资源(课件讲稿)第五讲 Linux Shell介绍.pdf
- 华东师范大学:《Linux操作系统》课程教学资源(课件讲稿)第四讲 Linux文件系统.pdf
- 华东师范大学:《Linux操作系统》课程教学资源(课件讲稿)第三讲 Linux基础.pdf
- 华东师范大学:《Linux操作系统》课程教学资源(课件讲稿)第二讲 Linux安装(Fedora 9的安装).pdf
- 华东师范大学:《Linux操作系统》课程教学资源(课件讲稿)第一讲 Linux介绍(主讲:潘建瑜).pdf
- 华东师范大学:《计算机应用基础》课程教学资源(课件讲稿)第六讲 MATLAB文件操作.pdf
- 华东师范大学:《计算机应用基础》课程教学资源(课件讲稿)第七讲 多项式运算与代数方程求解.pdf
- 华东师范大学:《计算机应用基础》课程教学资源(参考资料)数学软件Mathematica使用入门.pdf
- 《计算机应用基础》课程教学资源(参考资料)Mathematica参考.pdf
- 《计算机应用基础》课程教学资源(参考资料)MathType使用介绍.pdf
- 《计算机应用基础》课程教学资源(参考资料)MATLAB小结.pdf
- 《计算机应用基础》课程教学资源(参考资料)MATLAB常用命令和函数.pdf
- 《计算机应用基础》课程教学资源(参考资料)MATLAB_CheatSheet, by Thor Nielsen.pdf
- 《计算机应用基础》课程教学资源(参考资料)MATLAB Quick Reference, by Jialong He.pdf
- 《计算机应用基础》课程教学资源(参考资料)MATLAB Reference Card, by Jesse Knight.pdf
- 《计算机应用基础》课程教学资源(参考资料)MATLAB Reference Sheet, by Sherman Wiggin & Dom Dal Bello.pdf
- 《计算机应用基础》课程教学资源(参考资料)MATLAB Reference Sheet, by Giordano Fusco & Jindich Soukup.pdf
- 《计算机应用基础》课程教学资源(参考资料)Mathematica CheatSheet.pdf
- 北京大学出版社:21世纪全国应用型本科电子通信系列《MATLAB基础及其应用教程》实用规划教材(共八章,2007,编著:周开利等).pdf
- 人工智能相关文献资料:Adaptivity and Non-stationarity - Problem-dependent Dynamic Regret for Online Convex Optimization.pdf
- 南京大学:《数字图像处理》课程教学资源(课件讲义)01 概述 Digital Image Processing.pdf
- 南京大学:《数字图像处理》课程教学资源(课件讲义)02 二值图像与像素关系.pdf
- 南京大学:《数字图像处理》课程教学资源(课件讲义)03 灰度直方图与点运算.pdf
- 南京大学:《数字图像处理》课程教学资源(课件讲义)04 图像复原及锐化.pdf
- 南京大学:《数字图像处理》课程教学资源(课件讲义)05 代数运算与几何变换.pdf