中国高校课件下载中心 》 教学资源 》 大学文库

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

文档信息
资源类别:文库
文档格式:PDF
文档页数:20
文件大小:200.03KB
团购合买:点击进入团购
内容简介
 什么是函数文件  如何编写函数文件  递归函数  函数参数的可调性  局部变量与全局变量  子函数  函数句柄、内联函数、匿名函数
刷新页面文档预览

数学软件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! 递归函数举例

共20页,试读已结束,阅读完整版请下载
刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档