版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Matlab计算与仿真技术第九讲:Matlab编程-III第八讲回顾Matlab编程-III-变量查询
-匿名函数
-参数交互输入
-Matlab程序调试
-语言结构与调试函数第九讲提纲第八讲回顾函数的定义及申明
-使用方式:调用/嵌套
-协作方式:主函数/子函数/嵌套函数
-内部变量:生存周期控制控制语句
-if/if-else/if-elseif-…-else-switch-case-for/while
第八讲回顾(续)
if语句一般形式
iflogical_expressionblockofstatements
elseiflogical_expressionblockofstatements……
else
blockofstatements
end第八讲回顾(续)
switch
语句
一般形式
switchexpression
casevalue1,
blockofstatementscasevalue2,blockofstatements...otherwise,
blockofstatementsend第八讲回顾(续)-循环结构
根据条件重复执行程序指令或模块
for语句
%
计数循环
一般形式
forindex=expressionblockofstatementsend第八讲回顾(续)
while
语句
一般形式
whileexpressionblockofstatementsendMatlab编程(续)while
语句实例:newton法计算
whileabs(rold-r)>deltarold=r;r=0.5*(rold+x/rold);endMatlab编程(续)循环中断控制:while
语句实例
x=rand(1,10);k=1;whilek<=10ifx(k)>0.8
breakendk=k+1;endMatlab编程(续)函数返回控制:while
语句实例
x=rand(1,10);k=1;whilek<=10ifx(k)>0.8
returnendk=k+1;end综合练习:利用级数展开近似计算sin
-提示sin
的级数展开为
-m-函数实例
1:functions=powersin(x);2:%POWERSIN.Powerseriesforsin(x).3:%POWERSIN(x)triestocompute…sin(x)fromapowerseries.Matlab编程(续)Matlab编程(续)
4:s=0;
5:t=x;
6:n=1:
7:whileabs(t)>eps
8:s=s+t;
9:t=-x.^2/((n+1)*(n+2)).*t;
10:n=n+2;
11:end综合练习七:生命周期曲线
-提示:生理-23天;情感-28天;智力-33天
functionbiorythm(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)/33)];Matlab编程(续)
plot(t,y(:,1),t,y(:,2),'--',t,y(:,3),'.-',[t1t1],[-100100],'k:');datetick('x','dd/mm','keeplimits');axistight;title(mybirthday);legend('Physical','Emotional','Intellectual');xlabel('time[dd/mm]');ylabel('biorythmindex[%]')Matlab编程(续)-关于函数变量与参数传递
输入(输出)变量查询函数:nargin(nargout)
功能:返回函数的输入(输出)个数应用:根据变量个数,选取模块执行
functionc=testarg1(a,b)if(nargin==1)
c=a.^2;elseif(nargin==2)
c=a*b;endMatlab编程(续)Matlab编程(续)
-变量的传递
输入(输出)变量查询函数:varargin(varargout)
功能:返回由函数的输入(输出)变量的元胞数组
元胞:
Matlab的数据类型,由{}标识
{}中可以是算术/逻辑/字符/结构数据类型,例如
>>A(1,1)={[143;058;729]};>>A(1,2)={'AnneSmith‘};>>A(2,1)={3+7i};>>A(2,2)={-pi:pi/10:pi};Matlab编程(续)
-变量的传递(续):替代列表
注意:元胞数组的引用:{}
functiontestvar(varargin)fork=1:length(varargin)x(k)=varargin{k}(1);%Cellarrayindexingy(k)=varargin{k}(2);endxmin=min(0,min(x));ymin=min(0,min(y));
axis([xminfix(max(x))+3yminfix(max(y))+3])plot(x,y)Matlab编程(续)-函数句柄定义:指向函数的Matlab值,基本格式
fhandle=@functionname
fhandle可以作为变量传递功能:用于函数的创建和访问(运算)>>sqr=@(x)x.^2%匿名函数
>>trigFun={@sin,@cos,@tan}>>plot(trigFun{2}(-pi:0.01:pi))Matlab编程(续)函数句柄的引用格式
fhandle(arg1,arg2,...,argn)
实例:fhandle指向函数的曲线绘制
functionx=plotFHandle(fhandle,data)plot(data,fhandle(data))
引用:绘制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]>>A{1}(4)+A{2}(7)ans=33
>>A{3}(4,7)ans=33
Matlab编程(续)参数化的匿名函数
>>
a=1.3;b=.2;c=30;>>parabola=@(x)a*x.^2+b*x+c;>>fplot(parabola,[-2525])
%fplot(@(x)a*x.^2+b*x+c,[-2525])
>>a=-3.9;b=52;c=0;>>fplot(parabola,[-2525])
提示:fplot绘制句柄指向函数的图形Matlab编程(续)Matlab编程(续)多重匿名函数的使用
问题:计算提示:quad是matlab缺省的积分计算函数
回忆:>>lookforquad
>>g=@(c)(quad(@(x)(x.^2+c*x+1),…0,1));
>>g(2)Matlab编程(续)用户参数交互输入参数的作用:使程序更加通用灵活参数输入的主要模式
-
input函数输入参数
-keyboard函数(键盘模式)
-menu函数(菜单模式)
Matlab编程(续)键盘输入模式基本格式:v=input(‘显示的提示信息’);
功能实现:向用户显示提示信息将用户的输入赋给v
使用实例
freq=input(‘frequenceis’)
结果
frequenceis(等待键盘输入,
回车确认输入完成)Matlab编程(续)键盘控制模式基本格式:keyboard;
功能实现:临时终止程序执行将控制权交给命令窗口利用回车结束键盘控制使用实例查询/修改函数工作空间的变量
建立新的函数空间的变量Matlab编程(续)菜单输入模式基本格式:
item_no=menu(‘title’,’item1’,…’itemn’);
功能实现:显示菜单用户选择按钮返回菜单序号使用实例
s=menu(‘signal’,’red’,’green’,yellow’)
可结合选择控制语句使用Matlab编程(续)程序设计技术循环向量化计算模式目的:向量计算替代循环模式实例:ticticfort=0:0.01:100t=0.0:0.01:100
i=i+1;y(i)=sin(t)y=sin(t)endtoctoc耗时7.58耗时0.01Matlab编程(续)程序设计技术(续)
阵列预分配空间目的:避免循环过程空间分配的耗时实例:y(k)=0.75y(k-1)-0.125y(k-2)+2u(k)
clearall,tic
T=0.001;
t=[0:T:16]u=sin(2*pi*t);%y=zeros(size(u))
y(1)=2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年冶炼企业数字化审计系统建设与风险防控
- 高中语文 第五单元 二 鹏之徙于南冥教学设计1 新人教版选修《先秦诸子选读》
- 2026全国安全员B证-项目负责人(官方)-第十二章安全生产项目管理参考试题库历年考点答案详解
- 劳动合同法与《劳动法》比较及实务解析
- 2026住院医师规培-福建-福建住院医师规培(儿外科)历年参考题库含答案详解
- 2026事业单位笔试-福建-福建职业能力倾向测验(医疗招聘)历年参考题库含答案详解
- 2026事业单位笔试-安徽-安徽康复医学与技术(医疗招聘)历年参考题库含答案详解
- 2026事业单位工勤技能-湖南-湖南电工五级(初级工)历年参考题库含答案详解
- 2026事业单位工勤技能-内蒙古-内蒙古工程测量工三级(高级工)历年参考题库含答案详解
- 2026中级卫生职称-主治医师-临床医学检验学(中级)代码:352历年参考题库含答案详解
- JJF(建材)1712020勃氏透气仪校准规范
- 2025国家电网中级职称(电力数字及信息通信技术)试题及答案
- 2025年手术室专科护士考试试题及答案
- PVP与PKP术后护理指南
- 化学器材知识培训课件
- 职业技能大赛(水生物病害防治员赛项)考试题库(含答案)
- 临床医学专业概述
- 三节三爱主题教育班会
- 儿童特应性皮炎护理
- 2023年国家林业和草原局直属事业单位招聘笔试真题
- JBT 11270-2024 立体仓库组合式钢结构货架技术规范(正式版)
评论
0/150
提交评论