matlab计算与仿真

上传人:n**** 文档编号:50720803 上传时间:2018-08-10 格式:PPT 页数:32 大小:229.50KB
返回 下载 相关 举报
matlab计算与仿真_第1页
第1页 / 共32页
matlab计算与仿真_第2页
第2页 / 共32页
matlab计算与仿真_第3页
第3页 / 共32页
matlab计算与仿真_第4页
第4页 / 共32页
matlab计算与仿真_第5页
第5页 / 共32页
点击查看更多>>
资源描述

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

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

2、ch-case- for/whileMatlab计算与仿真 第八讲回顾 (续)if 语句一般形式 if logical_expressionblock of statementselseif logical_expressionblock of statements elseblock of statementsendMatlab计算与仿真 第八讲回顾 (续)switch 语句 一般形式switch expressioncase value1,block of statementscase value2,block of statements.otherwise,block of statem

3、entsendMatlab计算与仿真 第八讲回顾 (续)- 循环结构 根据条件重复执行程序指令或模块for 语句 % 计数循环一般形式for index = expressionblock of statementsendMatlab计算与仿真 第八讲回顾 (续)while 语句 一般形式while expressionblock of statementsendMatlab计算与仿真 Matlab编程 (续)while 语句实例: newton法计算while abs(rold-r) deltarold = r;r = 0.5*(rold + x/rold);endMatlab计算与仿真 M

4、atlab编程 (续)循环中断控制: while 语句实例x = rand(1,10);k = 1;while k0.8breakendk = k + 1;endMatlab计算与仿真 Matlab编程 (续)函数返回控制: while 语句实例x = rand(1,10);k = 1;while k0.8returnendk = k + 1;endMatlab计算与仿真综合练习: 利用级数展开近似计算 sin- 提示 sin 的级数展开为- m-函数实例1: function s=powersin(x);2: % POWERSIN. Power series for sin(x).3: %

5、POWERSIN(x) tries to computesin(x) from a power series.Matlab编程 (续)Matlab计算与仿真 Matlab编程 (续)4: s=0; 5: t=x;6: n=1:7: while abs(t) eps8: s=s+t;9: t=-x.2/(n+1)*(n+2).*t;10: n=n+2;11: endMatlab计算与仿真n综合练习七: 生命周期曲线- 提示: 生理-23天; 情感-28天; 智力-33天function biorythm(mybirthday)t0=datenum(mybirthday);t1=fix(now);

6、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)/33);Matlab编程 (续)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

7、 index %)Matlab编程 (续)Matlab计算与仿真- 关于函数变量与参数传递输入(输出)变量查询函数: nargin(nargout) 功能: 返回函数的输入(输出)个数应用: 根据变量个数, 选取模块执行function c = testarg1(a, b)if (nargin = 1)c = a . 2;elseif (nargin = 2)c = a * b;endMatlab编程 (续)Matlab计算与仿真 Matlab编程 (续)- 变量的传递输入(输出)变量查询函数: varargin(varargout) 功能: 返回由函数的输入(输出)变量的元胞数组元胞: Ma

8、tlab的数据类型, 由 标识 中可以是算术/逻辑/字符/结构数据类型, 例如 A(1,1) = 1 4 3; 0 5 8; 7 2 9; A(1,2) = Anne Smith; A(2,1) = 3+7i; A(2,2) = -pi:pi/10:pi;Matlab计算与仿真 Matlab编程 (续)- 变量的传递(续): 替代列表注意: 元胞数组的引用: function testvar(varargin)for k = 1:length(varargin)x(k) = varargink(1); % Cell array indexingy(k) = varargink(2);endxm

9、in = min(0,min(x);ymin = min(0,min(y);axis(xmin fix(max(x)+3 ymin fix(max(y)+3)plot(x,y)Matlab计算与仿真 Matlab编程 (续) - 函数句柄定义: 指向函数的Matlab值, 基本格式fhandle=functionnamefhandle可以作为变量传递功能: 用于函数的创建和访问(运算) sqr = (x) x.2 % 匿名函数 trigFun = sin, cos, tan plot(trigFun2(-pi:0.01:pi)Matlab计算与仿真 Matlab编程 (续) 函数句柄的引用格式

10、fhandle(arg1, arg2, ., argn)实例: fhandle指向函数的曲线绘制function x = plotFHandle(fhandle, data)plot(data, fhandle(data)引用: 绘制sin函数的曲线 plotFHandle(sin,-pi:0.01:pi)Matlab计算与仿真 Matlab编程 (续)匿名函数创建匿名函数fhandle = (arglist) expr创建实例 sumxy = (x, y) (x + y)应用操作 sumxy(5, 7) Matlab计算与仿真匿名函数元胞组实例 A = (x)x.2, (y)y+10, (x

11、,y)x.2+y+10A = (x)x.2 (y)y+10 (x,y)x.2+y+10 A1(4) + A2(7)ans =33 A3(4, 7)ans =33 Matlab编程 (续)Matlab计算与仿真参数化的匿名函数 a = 1.3; b = .2; c = 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 绘制句柄指向函数的图形M

12、atlab编程 (续)Matlab计算与仿真 Matlab编程 (续) 多重匿名函数的使用问题: 计算提示: quad 是 matlab 缺省的积分计算函数回忆: lookfor quad g = (c) (quad(x) (x.2 + c*x + 1),0, 1); g(2)Matlab计算与仿真 Matlab编程 (续)用户参数交互输入参数的作用: 使程序更加通用灵活参数输入的主要模式 - input 函数输入参数- keyboard函数 (键盘模式)- menu 函数 (菜单模式)Matlab计算与仿真 Matlab编程 (续)键盘输入模式基本格式: v= input( 显示的提示信息

13、);功能实现: 向用户显示提示信息将用户的输入赋给v 使用实例freq=input(frequence is) 结果frequence is (等待键盘输入,回车确认输入完成 ) Matlab计算与仿真 Matlab编程 (续)键盘控制模式基本格式: keyboard;功能实现: 临时终止程序执行将控制权交给命令窗口利用回车结束键盘控制 使用实例查询/修改函数工作空间的变量 建立新的函数空间的变量Matlab计算与仿真 Matlab编程 (续) 菜单输入模式基本格式: item_no=menu(title,item1,itemn);功能实现: 显示菜单用户选择按钮返回菜单序号 使用实例s=me

14、nu(signal,red,green,yellow) 可结合选择控制语句使用Matlab计算与仿真 Matlab编程 (续)程序设计技术循环向量化计算模式目的: 向量计算替代循环模式实例: tic ticfor t=0:0.01:100 t=0.0:0.01:100i=i+1; y(i)=sin(t) y=sin(t)end toctoc 耗时7.58 耗时0.01 Matlab计算与仿真 Matlab编程 (续) 程序设计技术(续)阵列预分配空间目的: 避免循环过程空间分配的耗时实例: y(k)=0.75y(k-1)-0.125y(k-2)+2u(k) clear all,tic T=0.

15、001; t=0:T:16u=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.0160for k=3:fix(16/T)+1 y(k)= 0.75*y(k-1)-.0.125*y(k-2)+2*u(k) end tocMatlab计算与仿真 Matlab编程 (续) 程序设计技术(续)内存使用/管理目的: 提高内存使用效率主要的命令 clear % 清楚变量 pack % 将变量寄宿在磁盘 quit % 退出Matlab环境 save % 将变量数据存入文件 load % 将文件数据加载进入工作空间Matlab计算与仿真 Matlab编程 (续)Matlab程序调试主要工具: m编辑器内嵌debugger功能程序错误 语法或格式错误: 显式且容易定位功能或计算错误: 算法错误纠错技巧 显示中间变量的内容利用Keyboard语句,查看函数工作空间的变量内容 设

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

当前位置:首页 > 电子/通信 > 综合/其它

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