欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    五Matlab编程入门二.ppt

    • 资源ID:80596689       资源大小:103.50KB        全文页数:19页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    五Matlab编程入门二.ppt

    数学实验Matlab 编程(二)function 输出形参列表输出形参列表=函数名函数名(输入形参列表输入形参列表)%注释说明部分注释说明部分(可选可选)函数体语句函数体语句(必须必须)u 第一行为第一行为引导行引导行,表示该,表示该 M文件是函数文件文件是函数文件u 函数名的命名规则与变量名相同函数名的命名规则与变量名相同(必须以字母开头必须以字母开头)u 当输出行参多于一个时,用当输出行参多于一个时,用方括号方括号括起来括起来u 函数必须是一个函数必须是一个单独的单独的 M文件文件u 函数函数文件名必须与函数名一致文件名必须与函数名一致u 以以百分号百分号开始的语句为开始的语句为注释语句注释语句函数文件函数文件q 函数文件由函数文件由 function 语句引导语句引导function y=myfliplr(x)%myfliplr Flip matrix in left/right direction.%returns X with row preserved and columns%flipped in the left/right direction%X=1 2 3 becomes 3 2 1%4 5 6 6 5 4%num_col=size(x,2);%取取 x 的列数的列数y=x(:,num_col:-1:1);函数文件举例函数文件举例myfliplr.mfunction printyh(n)%打印杨辉三角形打印杨辉三角形,本函数没有输出参数本函数没有输出参数yh=1;disp(yh);if n=1,return;endyh=1,1;disp(yh);for k=3:n yh_old=yh;k2=ceil(k/2);for l=2:k2 yh(l)=yh_old(l-1)+yh_old(l);end yh(k2+1:k)=yh(k-k2:-1:1);disp(yh);end函数文件举例函数文件举例printyh.m例例:编写函数文件求半径为编写函数文件求半径为r的圆的面积和周的圆的面积和周长。长。函数文件如下:函数文件如下:function s,p=fcircle(r)%CIRCLE calculate the area and perimeter of a circle of radii r%r 圆半径圆半径%s 圆面积圆面积%p 圆周长圆周长s=pi*r*r;p=2*pi*r;函数申明行函数申明行帮助文本区帮助文本区函数体函数体输入参数输入参数输出参数输出参数程序程序2:建立一个函数,将华氏温度转变为摄氏温度,已知公式为:c=5*(f-32)/9首先建立函数文件首先建立函数文件f2c.m。function c=f2c(f)函数定义行函数定义行%compute the Fahrenheit temperature to Celsius temperature c=5*(f-32)/9 函数主体函数主体然后在然后在MATLAB的命令窗口调用该函数文件。的命令窗口调用该函数文件。clear;y=input(Input Fahrenheit temperature:);x=f2c(y)输出情况为:输出情况为:Input Fahrenheit temperature:70c=21.1111x=21.1111利用函数文件,实现直角坐标利用函数文件,实现直角坐标(x,y)与极坐标与极坐标(,)之间之间的转换。的转换。【数学基础数学基础=sqrt(x*x+y*y),=atan(y/x)】函数文件函数文件tran.m:function rho,theta=tran(x,y)rho=sqrt(x*x+y*y);theta=atan(y/x);调用调用tran.m的命令文件的命令文件main1.m:x=input(Please input x=:);y=input(Please input y=:);rho,the=tran(x,y);rhotheq 函数调用的一般格式函数调用的一般格式输出实参列表输出实参列表=函数名函数名(输入实参列表输入实参列表)u 函数调用时,函数调用时,实参的顺序实参的顺序应与函数定义时的应与函数定义时的形参的顺形参的顺序序一致。一致。u 函数可以函数可以嵌套调用嵌套调用,即一个函数可以被其它函数调用,即一个函数可以被其它函数调用,甚至可以被它自身调用,此时称为甚至可以被它自身调用,此时称为递归调用递归调用。u 函数所传递的参数具有可调性,函数所传递的参数具有可调性,Matlab 用两个永久变用两个永久变量量 nargin 和和 nargout 分别记录调用该函数时的输入实分别记录调用该函数时的输入实参和输出实参的个数。参和输出实参的个数。函数调用函数调用%函数文件函数文件 factor.mfunction f=factor(n)if(n=1)f=1;else f=n*factor(n-1);end%main.m%计算计算 s=1!+2!+3!+4!+5!%s=0;for i=1:5 s=s+factor(i);endfprintf(s=%g n,s)例:利用函数的递归调用计算例:利用函数的递归调用计算 n!递归函数举例递归函数举例%ex4argin.mfunction out=ex4argin(a,b)if(nargin=1)out=a;elseif(nargin=2)out=a*b;end参数的可调性举例参数的可调性举例%ex4argout.mfunction p,q=ex4argout(a,b)if(nargout=1)p=a+b;elseif(nargout=2)p=a+b;q=a-b;endq 函数通过函数通过输入和输出参数输入和输出参数与其它与其它 M 文件进行数据传递。文件进行数据传递。q 当函数调用完毕后,该函数文件中定义的所有局部变量当函数调用完毕后,该函数文件中定义的所有局部变量都将被释放,即都将被释放,即全部被清除全部被清除。q 如果在若干个如果在若干个 M文件中,文件中,都把某个变量定义为全局变量都把某个变量定义为全局变量,则这些函数将公共使用这一变量则这些函数将公共使用这一变量。所有函数都可以对它进所有函数都可以对它进行存取和修改操作。行存取和修改操作。q 函数文件中的变量都是函数文件中的变量都是局部局部的,即一个函数文件中定义的,即一个函数文件中定义的变量不能被另一个函数文件或其它的变量不能被另一个函数文件或其它 M 文件使用。文件使用。全局变量与局部变量全局变量与局部变量q 定义全局变量是定义全局变量是 M文件间传递信息的一种手段。文件间传递信息的一种手段。l 变量名列表中的各个变量变量名列表中的各个变量用空格隔开用空格隔开,不能用逗号!,不能用逗号!全局变量给函数间的数据传递带来了方便,但却破坏全局变量给函数间的数据传递带来了方便,但却破坏了函数对变量的封装,降低了程序的可读性,因而了函数对变量的封装,降低了程序的可读性,因而在在结构化程序设计中,全局变量是不受欢迎的结构化程序设计中,全局变量是不受欢迎的。特别是。特别是当程序较大,子程序较多时,全局变量将个程序调试当程序较大,子程序较多时,全局变量将个程序调试和维护带来不便,故不提倡使用全局变量。和维护带来不便,故不提倡使用全局变量。global 变量名列表变量名列表全局变量的定义全局变量的定义程序示例程序示例clear;global a ba=1;b=3;y=mysquaresum(a,b);fprintf(a=%g,b=%g n,a,b);z=myproduct(a,b);fprintf(a=%g,b=%gn,a,b);function square_sum=mysquaresum(x,y)square_sum=x2+y2;function product=myproduct(x,y)global aproduct=x*y;a=x+y;子函数子函数function avg,med=ex4subfun(x)%主函数主函数 n=length(x);avg=mean(x,n);med=median(x,n);function a=mean(x,n)%子函数子函数a=sum(x)/n;function m=median(x,n)%子函数子函数x=sort(x);if rem(n,2)=1 m=x(n+1)/2);else m=(x(n/2)+x(n/2+1)/2;end子函数子函数u 函数文件中可以含有一个或多个子函数函数文件中可以含有一个或多个子函数u 子函数由子函数由 function 语句引导语句引导u 主函数必须位于最前面,子函数出现的次序任意主函数必须位于最前面,子函数出现的次序任意u 子函数只能被主函数和位于同一个函数文件中的其它子子函数只能被主函数和位于同一个函数文件中的其它子函数调用函数调用u 除了用除了用 global 定义的全局变量外,子函数中的变量都定义的全局变量外,子函数中的变量都是局部变量,子函数与主函数及其它子函数之间通过输入、是局部变量,子函数与主函数及其它子函数之间通过输入、输出参数进行数据传递输出参数进行数据传递q 调用一个函数时,调用一个函数时,Matlab 会首先检查该函数是否为一个会首先检查该函数是否为一个子函数。子函数。课堂练习课堂练习例题.将A矩阵用for循环写出来 A=1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8例:编写例:编写m函数,计算函数值函数,计算函数值 x (x1)2x-1 (1x=10)例题:从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。程序如下:sum=0;cnt=0;val=input(Enter a number(end in 0):);while(val=0)sum=sum+val;cnt=cnt+1;val=input(Enter a number(end in 0):);end if(cnt 0)sum mean=sum/cnt endn例题:求100,500之间前5个能被21整除的整数。clc,clear,s=1;n=100:500;for i=1:length(n)if rem(n(i),21)=0 m(s)=n(i);s=s+1;continue,endif s=6 break endendmu例题:例题:用用for循环指令来寻找循环指令来寻找Fibonacc数组中第一个大于数组中第一个大于10000的元素:的元素:【a(1)=1,a(2)=1,a(i)=a(i-2)+a(i-1)】clc,clear,n=100;a=ones(1,n);for i=3:n a(i)=a(i-2)+a(i-1);if a(i)10000 a(i),break;endendi

    注意事项

    本文(五Matlab编程入门二.ppt)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开