matlab计算与仿真ppt课件

上传人:资****亨 文档编号:145849792 上传时间:2020-09-24 格式:PPT 页数:32 大小:228.50KB
返回 下载 相关 举报
matlab计算与仿真ppt课件_第1页
第1页 / 共32页
matlab计算与仿真ppt课件_第2页
第2页 / 共32页
matlab计算与仿真ppt课件_第3页
第3页 / 共32页
matlab计算与仿真ppt课件_第4页
第4页 / 共32页
matlab计算与仿真ppt课件_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《matlab计算与仿真ppt课件》由会员分享,可在线阅读,更多相关《matlab计算与仿真ppt课件(32页珍藏版)》请在金锄头文库上搜索。

1、王国利,信息科学与技术学院,中山大学,http:/human-,Matlab计算与仿真技术 第九讲: Matlab编程-III http:/human-,第八讲回顾 Matlab编程-III - 变量查询 - 匿名函数 - 参数交互输入 - Matlab程序调试 - 语言结构与调试函数,第九讲提纲,第八讲回顾,函数的定义及申明 - 使用方式: 调用/嵌套 - 协作方式: 主函数/子函数/嵌套函数 - 内部变量: 生存周期控制 控制语句 - if /if-else/if-elseif-else - switch-case - for/while,第八讲回顾 (续),if 语句一般形式 if lo

2、gical_expression block of statements elseif logical_expression block of statements else block of statements end,第八讲回顾 (续),switch 语句 一般形式 switch expression case value1, block of statements case value2, block of statements . otherwise, block of statements end,第八讲回顾 (续),- 循环结构 根据条件重复执行程序指令或模块 for 语句 %

3、计数循环 一般形式 for index = expression block of statements end,第八讲回顾 (续),while 语句 一般形式 while expression block of statements end,Matlab编程 (续),while 语句实例: newton法计算 while abs(rold-r) delta rold = r; r = 0.5*(rold + x/rold); end,Matlab编程 (续),循环中断控制: while 语句实例 x = rand(1,10); k = 1; while k0.8 break end k =

4、k + 1; end,Matlab编程 (续),函数返回控制: while 语句实例 x = rand(1,10); k = 1; while k0.8 return end k = k + 1; end,综合练习: 利用级数展开近似计算 sin - 提示 sin 的级数展开为 - m-函数实例 1: function s=powersin(x); 2: % POWERSIN. Power series for sin(x). 3: % POWERSIN(x) tries to compute sin(x) from a power series.,Matlab编程 (续),Matlab编程

5、(续),4: s=0; 5: t=x; 6: n=1: 7: while abs(t) eps 8: s=s+t; 9: t=-x.2/(n+1)*(n+2).*t; 10: n=n+2; 11: end,综合练习七: 生命周期曲线 - 提示: 生理-23天; 情感-28天; 智力-33天 function biorythm(mybirthday) t0=datenum(mybirthday); t1=fix(now); t=(t1-28):1:(t1+28); t=t; y=100*sin(2*pi*(t-t0)/23) sin(2*pi*(t-t0)/28) sin(2*pi*(t-t0)

6、/33);,Matlab编程 (续),plot(t,y(:,1),t,y(:,2),-,t,y(:,3),.-,t1 t1,-100 100,k:); datetick(x,dd/mm,keeplimits); axis tight; title(mybirthday); legend(Physical,Emotional,Intellectual); xlabel(timedd/mm); ylabel(biorythm index %),Matlab编程 (续),- 关于函数变量与参数传递 输入(输出)变量查询函数: nargin(nargout) 功能: 返回函数的输入(输出)个数 应用:

7、 根据变量个数, 选取模块执行 function c = testarg1(a, b) if (nargin = 1) c = a . 2; elseif (nargin = 2) c = a * b; end,Matlab编程 (续),Matlab编程 (续),- 变量的传递 输入(输出)变量查询函数: varargin(varargout) 功能: 返回由函数的输入(输出)变量的元胞数组 元胞: Matlab的数据类型, 由 标识 中可以是算术/逻辑/字符/结构数据类型, 例如 A(1,1) = 1 4 3; 0 5 8; 7 2 9; A(1,2) = Anne Smith; A(2,1

8、) = 3+7i; A(2,2) = -pi:pi/10:pi;,Matlab编程 (续),- 变量的传递(续): 替代列表 注意: 元胞数组的引用: function testvar(varargin) for k = 1:length(varargin) x(k) = varargink(1); % Cell array indexing y(k) = varargink(2); end xmin = min(0,min(x); ymin = min(0,min(y); axis(xmin fix(max(x)+3 ymin fix(max(y)+3) plot(x,y),Matlab编程

9、 (续),- 函数句柄 定义: 指向函数的Matlab值, 基本格式 fhandle=functionname fhandle可以作为变量传递 功能: 用于函数的创建和访问(运算) sqr = (x) x.2 % 匿名函数 trigFun = sin, cos, tan plot(trigFun2(-pi:0.01:pi),Matlab编程 (续),函数句柄的引用格式 fhandle(arg1, arg2, ., argn) 实例: fhandle指向函数的曲线绘制 function x = plotFHandle(fhandle, data) plot(data, fhandle(data)

10、 引用: 绘制sin函数的曲线 plotFHandle(sin,-pi:0.01:pi),Matlab编程 (续),匿名函数 创建匿名函数 fhandle = (arglist) expr 创建实例 sumxy = (x, y) (x + y) 应用操作 sumxy(5, 7),匿名函数元胞组实例 A = (x)x.2, (y)y+10, (x,y)x.2+y+10 A = (x)x.2 (y)y+10 (x,y)x.2+y+10 A1(4) + A2(7) ans = 33 A3(4, 7) ans = 33,Matlab编程 (续),参数化的匿名函数 a = 1.3; b = .2; c

11、= 30; parabola = (x) a*x.2 + b*x + c; fplot(parabola, -25 25) % fplot(x) a*x.2 + b*x + c, -25 25) a = -3.9; b = 52; c = 0; fplot(parabola, -25 25) 提示: fplot 绘制句柄指向函数的图形,Matlab编程 (续),Matlab编程 (续),多重匿名函数的使用 问题: 计算 提示: quad 是 matlab 缺省的积分计算函数 回忆: lookfor quad g = (c) (quad(x) (x.2 + c*x + 1), 0, 1); g(

12、2),Matlab编程 (续),用户参数交互输入 参数的作用: 使程序更加通用灵活 参数输入的主要模式 - input 函数输入参数 - keyboard函数 (键盘模式) - menu 函数 (菜单模式),Matlab编程 (续),键盘输入模式 基本格式: v= input( 显示的提示信息 ); 功能实现: 向用户显示提示信息 将用户的输入赋给v 使用实例 freq=input(frequence is) 结果 frequence is (等待键盘输入, 回车确认输入完成 ),Matlab编程 (续),键盘控制模式 基本格式: keyboard; 功能实现: 临时终止程序执行 将控制权交给

13、命令窗口 利用回车结束键盘控制 使用实例 查询/修改函数工作空间的变量 建立新的函数空间的变量,Matlab编程 (续),菜单输入模式 基本格式: item_no=menu(title,item1,itemn); 功能实现: 显示菜单 用户选择按钮 返回菜单序号 使用实例 s=menu(signal,red,green,yellow) 可结合选择控制语句使用,Matlab编程 (续),程序设计技术 循环向量化计算模式 目的: 向量计算替代循环模式 实例: tic tic for t=0:0.01:100 t=0.0:0.01:100 i=i+1; y(i)=sin(t) y=sin(t) en

14、d toc toc 耗时7.58 耗时0.01,Matlab编程 (续),程序设计技术(续) 阵列预分配空间 目的: 避免循环过程空间分配的耗时 实例: y(k)=0.75y(k-1)-0.125y(k-2)+2u(k) clear all,tic T=0.001; t=0:T:16 u=sin(2*pi*t); % y=zeros(size(u) y(1)=2*u(1); y(2)=0.75*y(1)+2*u(2);,耗时0.562(%)/ 0.0160,for k=3:fix(16/T)+1 y(k)= 0.75*y(k-1)-. 0.125*y(k-2)+2*u(k) end toc,M

15、atlab编程 (续),程序设计技术(续) 内存使用/管理 目的: 提高内存使用效率 主要的命令 clear % 清楚变量 pack % 将变量寄宿在磁盘 quit % 退出Matlab环境 save % 将变量数据存入文件 load % 将文件数据加载进入工作空间,Matlab编程 (续),Matlab程序调试 主要工具: m编辑器内嵌debugger功能 程序错误 语法或格式错误: 显式且容易定位 功能或计算错误: 算法错误 纠错技巧 显示中间变量的内容 利用Keyboard语句,查看函数工作空间的变量内容 设置断点或单步执行方式,第十讲预告: Matlab绘图-I (2008年04月30日),结束语,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号