网站大量收购独家精品文档,联系QQ:2885784924

MATLAB 7.X程序设计 王建卫 第3章 2 新.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MATLAB 7.X程序设计 第3章 MATLAB 程序设计(2) 3.5 循环语句 3.5.1 while循环 例3-16 从键盘输入若干个数,当输入0时结束 输入,求这些数的平均值和它们之和。 例 3-17 已知 (1)?????? n为任意给定的整数,求y的值。 (2)?????? y≥1.5时,求n的值。 3.5.2 for循环 for循环变量=表达式1:表达式2:表达式3 循环体语句 end for语句的更一般的格式为: for 循环变量=矩阵表达式 循环体语句 end 例3-18 已知 当m=100时,求y的值。 例 3-19 设 求 例3-20 求[100,200]之间第一个能被13整 除的整数。 例3-24 编程列出n阶Hilbert矩阵。 3.5.3 循环程序的等价形式 1 数组运算的应用 MATLAB的基本数据单元为数组,定义了矩阵运算和数组运算,循环程序在一些特殊情况下可以用数组运算替代。 例3-26 求1-100的平方、平方根和立方根。 方法1: square=zeros(1,100);square_root=zeros(1,100);cube_root=zeros(1,100); for ii=1:100 square(ii)=ii^2; square_root(ii)=ii^(1/2); cube_root(ii)=ii^(1/3); end 2 逻辑数组的应用 下面介绍逻辑数组和循环程序等价方面的应用。 例3-27 编程求3阶魔方矩阵大于5的元素的平 方根。 方法2: a=magic(3); b=a5; %b是逻辑数组 a(b)=sqrt(a(b)) 分析:方法1和方法2程序的执行结果相同,b=a5和a(b)=sqrt(a(b))语句等价于二重循环。 如果要求同时对小于等于5的元素求平方呢? a=magic(3); b=a5; a(b)=sqrt(a(b)); a(~b)=a(~b).^2; a 例3-28 创建向量1,2,... ,10000,求其中大于5000的所有元素的平方根。要求证明用逻辑数组方法执行时间短。 3.6 函数文件 3.6.1函数文件的格式 函数文件是一种特殊类型的运行在自己独立的工作空间的M-文件,通过在输入形参表接收数据,通过输出形参表返回结果到调用文件。 说明: 1)函数说明行 2)H1行 3)help text 4)编写和修改记录 5)函数体 注意:1) 、2)、3)和4)是注释行 例3-29 编写一个函数文件,求Fibonacci数组中第一个大于整数n 的元素及序号。 定义函数文件f0: function f0(n) a(1)=1;a(2)=1;i=2; while a(i)= n a(i+1)=a(i-1)+a(i);i=i+1; end i,a(i) 例3-30 求n!,n=1,2,…,10。 定义函数文件ffactor: function f=ffactor(n) if n=1 f=1; else f=ffactor(n-1)*n; end return; %返回 编写下述的命令文件中调用函数文件ffactor.m for i=1:10 fac(i)=ffactor(i); end fac 3.6.2 全局变量和临时变量 1 全局变量 global X Y Z 2 局部变量 presistent X Y Z 3.6.3 函数文件的应用 1 建立内联函数 例3-31 建立函数 方法1: f= inline((x-3).^2-1) ; formula(f) f(3) 2 函数的零值和极小值 函数的零值函数fzero的格式: X = fzero(FUN,X0) 功能:求函数FUN在X0附近的零点 例3-32 求函数f(x)=sin(3x)在2附近 的零点。 f=inline(sin(3*x)); X=fzero(f,2) 例3-33 求函数f(x)=sin(x)+3在区间 [2 5]的极小值。 f=inline(sin(x)+3); x=fminbnd(f,2,5) ; 或x=fminbnd(sin(x)+3,2,5) ; sin(x)+3 %f(x)在区间[2 5]的极小值 3.7 MA

您可能关注的文档

文档评论(0)

精品课件 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档