MATLAB第五章程序的设计
MATLAB程序设计PPT课件
y=sum(x)/length(x);
2021/5/8
9
保存该文件(保存时函数名和文件名必须一致, 否则,调用函数时需要使用文件名称而非函数名 称),调用此函数时在命令窗口输入如下命令:
>> x=[1 2 3];
>>y=average(x)
y=
2
上述函数第一行为函数定义行, 定义了函数名称 average、输入变量x和输出变量y,其中 function
function行中输入输出参数名可以和调用时的参数不同名。
当有多个变量输入输出时;
function [y1,…,yn]=fun(x1,x2,x3)
当不含输出变量时,可以直接省略输出部分或用空方括号表示:
function printresults(x)
function []=printresults(x)
第5章 MATLAB程序设计
2021/5/8
1
MATLAB作为一种应用广泛的科学计算软件,不 仅具有强大的数值计算、数据可视化功能,而且 具有强大的程序设计功能。通过编写扩展名为.m 的M文件,用户可以实现各种复杂的功能,且 MATLAB语言语法简单,库函数丰富,程序易于 调试,极大方便了用户的开发过程。
在命令行键入文件名,Matlab会打开这一脚 本文件,并执行文件内容。
脚本文件不包含输入参数和输出参数,通 常由M文件正文和注释部分构成,文件正文 主要实现特定功能,而注释是给出代码说 明,便于阅读。
2021/5/8
5
【例5-1】脚本文件。 g=0:0.5:20; %创建一维向量
X=sin(g);
%y=average(x) %其中,x为向量,y为计算得到向量元素的均值 %若输入参数为非向量则出错 %代码行
第五讲MATLAB程序设计ppt课件
语句组m
otherwise
语句组n
end
(exswitch.m)
第五讲 MATLAB程序设计
18
(3)try语句 语句格式为: try
语句组1 catch
语句组2 end
try语句先试探性执行语句组1,如果语句组1在执行 过程中出现错误,则将错误信息赋给保留的lasterr 变量,并转去执行语句组2。
第五讲 MATLAB程序设计
14
2、选择结构
(1) 条件分支语句——if语句 在MATLAB中,if语句有3种格式。 1) 单分支if语句: if 条件 语句组
end
第五讲 MATLAB程序设计
15
2) 双分支if语句: if 条件
语句组1 else
语句组2 end
第五讲 MATLAB程序设计
16
第五讲 MATLAB程序设计
24
三、程序调试
1 错误分类
一般来说,应用程序的错误有两类:
一类是语法错误,例如函数名的拼写错、表达式 书写错等。
另一类是运行时的错误。指程序的运行结果有错 误,这类错误也称为逻辑错误。
第五讲 MATLAB程序设计
25
2、查找逻辑错误的方法:
◆ 删去语句行末的分号,使显示其运行中间结果 ◆ 利用keyboard 命令实现,return继续程序执行 ◆ 注释掉M 函数文件的函数定义行,使函数文件转
第五讲 MATLAB程序设计
19
例: 矩阵乘法运算要求两矩阵的维数相容,否则会 出 错。先求两矩阵的乘积,若出错,则自动转去 求两矩阵的点乘。(extry.m)
第五讲 MATLAB程序设计
20
3、 循环结构
(1)硬循环语句——for语句
MATLAB5程序设计
例5.2 建立一个函数文件将变量a,b的值互换,然 后在命令窗口调用该函数文件。 首先建立函数文件e2.m: function [a,b]=e2(a,b) % ee2 c=a;a=b;b=c; 调用:[a,b]=e2(2,3) 然后在MATLAB的命令窗口调用该函数文件: clear; x=1:10; y=[11,12,13,14;15,16,17,18]; 目录 [x,y]=e2(x,y)
由上例可以看出函数文件的一般格式为:
function [输出表]=函数名(输入表) 注释说明部分 函数体语句 函数文件的第一行必须是以关键字function 开始,表明该文件是函数文件.输入表是以 逗号相分隔的形参.输出表是函数的返回 值.如果返回值只有一个方括号可以省略; 如果返回值不止一个,输出表中的各个变量 要以逗号隔开.
命令文件
M命令文件的特点是:
命令文件的构成比较简单,只是一串按用户意
图排列而成的(包括控制流和指令在内的) MATLAB指令集合 M文件中定义的变量为全局变量.命令文件运行 后 ,所产生的所有变量都驻留在 MATLAB基本 工作空间( workspace)中。只要用户不使用 清除指令(clear), MATLAB指令窗不关闭, 这些变量将一直保存在基本工作空间中
函数调用
函数调用的一般格式是: [输出实参表]=函数名(输入实参表)
例5.5 利用函数文件,实现直角坐标(x,y)与极坐标(ρ,θ)之间 的转换。 函数文件tran.m: function [rho,theta]=tran(x,y) rho=sqrt(x*x+y*y); theta=atan(y/x);
disp(x) 显示x的内容,与x 的区别是: 前者仅显示x的内容,后者多个"x=".
《MATLAB教程及实训》第五章ppt5
例5-12 根据输入参数的个数将例5-11中参数个数使用 varargin和varargout函数,绘制不同线型的曲线,绘制的 曲线与图5-6相同。 function varargout=ex5_12(varargin) x=0:10; lin=length(varargin); %取输入参数个数 在命令窗口中输入 y=lin*ones(11,1); 调用命令: hold on >> y=ex5_12('y','o') if lin==0 varargout = plot(x,y) [2] elseif lin==1 y= plot(x,y,varargin{1}) 2 else >> ex5_12('y','o') plot(x,y,[varargin{1} varargin{2}]) varargout = end [2] varargout{1}=lin ans = 2
5.3.2 函数的输入输出参数
1. 参数的传递 函数的参数传递是将主调函数中的变量值 传给被调函数的输入参数 (1)函数参数传递的是数值 (2)被调函数的输入参数是存放在函数 的工作空间中,与MATLAB的工作空间是 独立的,当调用结束时函数的工作空间被清 除,输入参数也被清除。
2. 输入输出参数的个数
例5-2 使用switch结构判断学生成绩的等级,90分以上 为优,80~90为良,70~80为中,60~70为及格,60分以 下为不及格。
>> score=98; >> s1=fix(score/10); >> switch s1 case {9,10} s='优' case 8 s='良' case 7 s='中' case 6 s='及格' otherwise s='不及格' end
MATLAB程序设计与应用-第五章
MATLAB在命令窗口输入命guide 在操作桌面上展开启动平台窗口中树状列表的MATLAB,选择其中的GUIDE选项点击OK按钮,打开布局编辑器布局编辑器窗口改变大小用鼠标在界面上添加一个可编辑文本框,两个静态文本框,两个按钮。
点击保存后,生成两个文件:exam5_1.flg 仅用于保存图形界面。
删除一些注释后,exam5_1的代码如图,该页为程序初始化代码此为控件功能代码此为控件初始化代码选择工具栏中的排列工具图标即可打开排列工排列工具分为对控件对象垂直和水平两个方向几何位置的排列。
每个方向又分为位置调整和5.1 图形用户界面开发环境->Tools->Menu Editor…->View->Object Brower…5.1 图形用户界面开发环境三、开发工具窗口5、Tab顺序编辑器(Tab Order Editor)工具栏-> Tools-> Tab Order Editor...Tab顺序编辑器,当需要修改用户按下“Tab”键来改变焦点的顺序时使用该编辑器。
M-file editorM-file 编辑器Tab order editorTab顺序编辑器在MATLAB最近的几个版本中,布局编辑器提供了M-file编辑器的连接。
一、控件介绍一、控件介绍5.2 控件对象及属性对话框实例:exam5_1_2.m 对话框实例:exam5_1_2.m关键代码如上图所示界面设计好后,修改相关属性修改后汉字不显示,只有方框。
运行后界面如图,此时点击按钮没有任何作用。
修改前修改后修改前后对象属性变化情况exam5_1.m在上述位置加入红色线框内的代码,保存,执行结果见下图在登陆框内输入刘备,点击登陆,出现欢迎界面。
点击取消,欢迎词消失。
5.4 图形用户界面程序设计各控件属性值如图关键程序代码如上图程序运行结果,正确检测出混合正弦曲线中的频率分别为50Context 菜单。
选择它后,主菜单后,可以单击第Context 主菜单的子菜单。
杭州电子科大,MATLAB经典教程。第五章 程序设计
概述(函数)
内建函数: (Build-in)函数,这类函数是由MATLAB 的内核提供的,能够完成基本的运算,例如三角函数, 矩阵运算的函数等.(应该是有经过优化的,运算速度 比较快.) 高级语言开发的函数:用户自己开发的函数,由此 基础上可以构成专用领域的toolbox,或者针对某个具体 任务的application.
5.2 函数
1)函数的语法格式: )函数的语法格式: function [out1,out2,…] = fun(in1,in2,…) 函数名:fun 输入变量: in1,in2,…等 输出变量:out1,out2,… note: 1)注意[],()的区别. 2)函数的命名与变量的命名最好能反映其 "语义".
meditor:为了方便编辑M文件,MATLAB也提供了一个 编辑器,叫作meditor,它也是系统默认的M文件编辑器. *.m 文件是文本文件,所以任何一个文本编辑器都可以 编辑它. note:一个完成的集成开发环境 ( IDE) 应该包括编 集成开发环境( ) 编 集成开发环境 编译,调试等功能.Meditor提供了编辑,调试的功 辑,编译,调试 能.因为它是解释性语言,因此一般的m文件不经过编 译环节.
1)for ) d)for循环可按需要嵌套 ) 循环可按需要嵌套 例子3: 例子 : 公元前五世纪我国古代数学家张丘建在 算经》一书中提出了"百鸡问题" 鸡翁一值钱五, 《算经》一书中提出了"百鸡问题":鸡翁一值钱五, 鸡母一值钱三,鸡雏三值钱一.百钱买百鸡,问鸡翁, 鸡母一值钱三,鸡雏三值钱一.百钱买百鸡,问鸡翁, 雏各几何? 母,雏各几何? 如何编程实现? 如何编程实现?
概
述
M语言:MATLAB提供了完整的编写应用程序的能力, 这种能力通过一种被称为M语言的高级语言来实现. 解释型语言 M文件:一个M语言文件就是由若干MATLAB的命令组 合在一起构成的,这些命令都是在前面章节中介绍的合 法的MATLAB命令.其文件的扩展名为.m. 2 种形式:命令式,函数式;前者是命令行的简单叠加; 后者则用以解决参数传递和函数调用的问题.
MATLAB学习课件第五章
4
5.1 概述
根据程序运行方式的不同,可以将MATLAB程序设计分为
两种方式:
一种是在命令窗口中逐条输入命令,另一种是将相关
的命令存储在一个M文件中。
前者称为命令行方式,又称为指令驱动模式。后者称
为M文件的程序运行方式。
命令行方式 M文件编程方式 命令逐条解释执行 自动一次执行完文件中所有命令 简单,直观 不直观 速度慢,执行过程不能保留, 速度快,可以重复执行文件 不能重复执行
25
2、while语句
while语句的一般格式为: while 表达式 循环体语句 end while语句为条件循环语句,循环次数不确定,只要循环条件
表达式的结果非零,语句体就重复执行,直到循环条件表达 式的结果为零,则跳出循环
26
5.3.4 程序流的控制
与控制程序执行过程相关的语句主要有break语句、
5.3 MATLAB程序结构
MATLAB程序的控制结构有3种:
顺序结构、选择结构和循环结构。
按照程序设计的观点, 任何算法功能都可以通过由程序模
块组成的三种基本程序结构的组合来实现。
11
5.3.1 顺序结构
顺序结构是指程序按程序语句或模块在执行流中的顺序逐
个执行,直到执行到程序的最后一个语句。
函数式M文件 接受输入参数,有返回值 文件中定义变量为局部变量, 文件执行完毕时,局部变量 清除,不保留在工作空间
要通过函数调用的方式调用 才能运行 用户需要自定义某种具体算 法时使用
5.2.3 M文件操作
对M文件常用的操作有:打开M文件、新建M文件、编辑
M文件、保存M文件和运行M文件等。
10
例5.8:判断读取矩阵是否正确。 解:程序如下 n=4; a=magic(3) try a_n=a(n,:), %取a的第n 行元素 catch a_n=a(end, : ), %如取a的第n 行出错,则改取a的最后一行 end lasterr %显示出错原因 执行结果如下; a= 8 1 6 3 5 7 4 9 2 a_n = 9 2 ans = Attempted to access a(4,:); index out of bounds because size(a)=[3,3].
数学实验MATLAB第五章
学习方法与建议
学习方法
通过理论学习和实践操作相结合的方式,深入理解MATLAB高级编程技术的原 理和应用。
建议
在学习本章之前,读者应该已经具备一定的MATLAB基础知识和编程经验。同 时,建议读者在学习过程中多进行实践操作,通过编写代码来加深对知识点的 理解和掌握。
02 MATLAB基础知识回顾
数学实验matlab第五章
目 录
• 第五章概述 • MATLAB基础知识回顾 • 数组与矩阵操作 • 数值计算与数据分析 • 程序设计与优化 • 综合应用与案例分析
01 第五章概述
章节内容与目标
内容
介绍MATLAB中的高级编程技术 ,包括脚本和函数编程、数据结 构和算法、面向对象编程等。
目标
通过学习本章,读者应该能够熟 练掌握MATLAB的高级编程技术 ,并能够灵活运用这些技术解决 复杂的数学问题。
运算符与函数
运算符
详细讲解MATLAB中的运算符, 包括算术运算符、关系运算符、 逻辑运算符等。同时介绍运算符
的优先级和结合性。
函数
阐述函数的概念,以及如何在 MATLAB中定义和使用函数。同时 介绍函数的输入和输出参数,以及 函数的返回值。
常用函数
介绍MATLAB中常用的函数,包括 数学函数、字符串处理函数、文件 操作函数等。同时给出函数的语法 和使用示例。
矩阵的乘法
按照矩阵乘法的规则进行运算 ,结果矩阵的维数可能发生变
化。
矩阵的转置
将矩阵的行和列互换,得到转 置矩阵。
矩阵的逆
对于方阵,若其逆矩阵存在, 则可以通过特定的运算求得逆
矩阵。
数组与矩阵的应用举例
线性方程组求解
数据分析与处理
MATLAB 2016基础实例教程 第5章 程序设计基础
《MATLAB 2016 基础实例教程》
5.2.5 程序的信息诊断
在MATLAB编程中,使用break命令、pause命令、continue命令、 return命令、echo命令、error命令与warning命令等可以实现程序 流程控制命令。
1.break命令 该命令一般用来终止for或while循环,通常与if条件语句在一起用,
该命令用来显示错误信息,同时返回键盘控制。
5.2.6
《MATLAB 2016 基础实例教程》
操作实例
例1:计算平方根函数。 例2:编写一个求两矩阵之和的程序。 例3:编写一个求 的函数。
《MATLAB 2016 基础实例教程》
5.2.7 程序调试
最常用的调试方式有两种:一种是根据程序运行时系统给出的错误 信息或警告信息进行相应的修改;另一种是通过用户设置断点来对 程序进行调试。
《MATLAB 2016 基础实例教程》
第5章 程序设计基础
MATLAB提供特有的函数功能可以解决许多复杂的科学计算,工 程设计问题,但在很多情况下利用函数无法解决复杂问题,或者解 决方法过于繁琐,因此需要编写专门的程序。本节以M文件为基础, 详细介绍程序的基本编写流程。
《MATLAB 2016 基础实例教程》
《MATLAB 2016 基础实例教程》
5.2.7 程序调试
2.清除断点 与设置断点一样,清除断点同样有三种实现方法:最简单的就是
将光标放在断点所在行,然后按F12便可清除断点;第二种方法同样 是利用“Debug”菜单下拉菜单中的“Set/Clear Breakpoint”选项;第 三种方法是利用dbclear命令来清除断点。 3.列出全部断点
函数的加载方式只有当函数类型为overloaded时才存在。
第5章matlab程序设计
§5.3 函数文件
5.3.2 函数调用 函数调用旳一般格式为 [输出实参表]=函数名(输入实参表) 函数调用时各实参出现旳顺序、个数,应与函
数定义时形参旳顺序、个数一致,不然会犯错。 函数调用时,先将实参传递给相应旳形参,从而 实现参数传递,然后再执行函数旳功能。
§5.3 函数文件
注意: varargin和varargout必须出目前参数列表旳
最终,即函数调用必须首先指定必要旳参数。例 如,下面旳函数申明行显示了varargin和 varargout旳正确位置: function[out1,out2]=example1(a,b,varargin) function[i,j,varargout]=example2(x1,y1,x2,y2, flag)
§5.3 函数文件
全局变量用global命令定义,格式为 global 变量名
【例5.19】全局变量应用示例。 先建立函数文件wadd.m,该函数将输入旳参数
加权相加。 function f=wadd(x,y) global ALPHA BETA f=ALPHA*x+BETA*y;
§5.3 函数文件
使用它பைடு நூலகம்
§5.3 函数文件
%函数体——一般从第一种空白行开始 %注释——描述函数旳行为,输入输出旳类型等 %在命令行中键入“help<functionname>”时不会
显示注释文本 X=prod(a,b) %开始编写函数代码
一种完整旳函数式M文件应该涉及定义行、H1 行、帮助文本、函数体、注释和函数代码等内容, 其中函数定义行和函数代码是必需旳。
§5.3 函数文件
命令文件main3.m x=examp(1:3) y=examp(1:3,4:6) z=examp(1:3,[1;2;3],15)
MATLAB5 MATLAB程序设计
petal.m,并在指令窗口
运行 petal,将看到下 面的图案
几点说明: 不需要用 end 作为 M 文件的结束标志 若用户把 petal.m 存放在 d:\mywork 中,
sum =
153
练习
1. 利用 for 循环求 s = 1 – 1/2 + 1/3 -1/4 + ......+1/99 -1/100 的值。 2. 生成向量 x = 1: 2: 100, 计算 sum(1./x) 3. 根据 3 n
求 的近似值。当 n 分别取 100、1000、
那么在运行前,应在指令窗中运行 cd d:\mywork
petal 运行后存放在内存中的变量,可以
用 whos 看到
2 函数文件
如果 M 文件的第一行包含 function,此文件就是
函数文件。
函数就像一个“黑箱”,送入数据,得出结果。 函数文件区别于命令文件之处是:
命令文件中的变量在执行完后保存在内存中
MATLAB 语言简洁高效,被称为 第四代编程语言。
本章要点
要充分发挥 MATLAB 的能力,必须掌握 MATLAB 程序 设计。本章具体包括以下内容:
M 文件的形式、功能和特点
数据结构和全局变量 程序结构和程序流控制 函数调用和变量传递 M 文件的调试
一、M 文件
包含 MATLAB 代码的文件称为 M 文件,扩展名为 .m。
与在命令窗口逐行执行文件中的所有指令等价。
matlab教学-第5章 程序设计
5.5.1
循环计算
1.循环的向量化 2.循环的优化
5.5.2
M文件分析
MATLAB还向用户提高了一个方便地分析编写的代码 效率的工具,可以告诉用户代码各部分的执行效率,对于执 行效率慢得代码,用户可以考虑通过其他方法提高算法效率 。
5.6
本章小结
本章主要介绍了MATLAB程序设计的基本知识,通过 本章的学习,读者应该掌握MATLAB程序设计基本的语法 规则,尝试编写一些简单的程序文件,同时进一步完善程序 ,使其效率更高。
5.4
程序的错误处理
通过上述内容的学习,读者可以基本掌握程序编写的 流程,可以独立写出简单的程序。相对而言,程序的写作比 较容易,写完后程序是否能保质保量的完成指定的设计任务 才是关键。在本节中笔者将结合多年使用MATLAB的心得 体会,与读者探讨MATLAB常见的错误类型其程序的调试 方法。
5.4.1
5.3.3
暂停语句
pause命令用于暂停运行的程序,一般用于调试过程, 或者向用户显示程序的中间结果。
5.3.4
指令显示控制语句
一般的函数文件在执行中,代码不会显示,但是如果 需要查看运行了哪些代码,可以使用echo命令,用于控制 是否显示执行的代码,如果开启显示功能,程序执行的代码 将在命令窗口显示。
5.3.5
警告语句
当程序运行出错后,程序设计中需要提供警告语句用 于显示出错信息。MATLAB提供了可具有警告提示功能的 语句主要有warning语句、error语句、errordlg语句。
5.3.6
返回语句
return语句用于结束程序,可以强制退出某一运行的函 数,而break只能退出循环,continue语句只能退出当前的 循环,进入下一次循环。
MATLAB程序设计 课件 第5章
5.3.2 逻辑操作符
exam5_5.m的运行结果
图5.4
第5章 MATLAB程序设计基础
5.4 MATLAB流程控制结构
MATLAB提供了4种流程控制结构:循环结构、条件结构、 开关结构和试探结构,供用户根据某些判断结果来控制程序流 的执行次序。MATLAB的这些流程控制结构和用法与其它程 序设计语言的十分相似。
对于复数,“= =”和“~=”运算,既比较实部,又比较虚 部;而其它运算仅比较实部。
5.3.1 关系操作符
【例5.3】 关系运算的示例。 编写M文件exam5_3.m如下:
% exam5_3 clear A=[1,2;3,4];B=[1,3;2,4]; c=3; r1=(A==B) r2=(A~=B) r3=(A<=c) r4=r3-B
运行结果见下页,注意工作空间的变化。
5.3.1 关系操作符
【说明】 exam5_3.m的 最后一条语句 中,由于r3是 由0和1构成的 数组,所以可 以进行一般数 学运算。
5.3.1 关系操作符【补来自例】 复数数组的比较示例。 编写M文件exam_suppl.m如下:
% exam5_suppl clear A=[1+3i,2+2j;3+j,4]; c=3+j; r1=(A==c) r2=(A~=c) r3=(A<=c)
点击MATLAB操作桌面 (见图5.1)工具条上的New M-File图标 。
利用MATLAB操作桌面 (见图5.1)工具条上 “File:New”子菜单,再从右 拉菜单中选择“M-file”项。
5.2 M文件编辑调试器
2. 打开已有的M文件的三种操作方法
在MATLAB指令窗中键入指 令:>>edit filename (filename是待打开的文件名, 可不带扩展名)。 点击MATLAB操作桌面(见 图5.1)工具条上的Open File图 标 ,再从弹出的对话框中 点选所需打开的文件。 利用MATLAB指令窗中的 “File:Open”子菜单,再从弹 出的对话框中点选所需打开的 文件。
MATLAB 第五章程序设计.ppt
2020/4/19
28
六、文件操作
matlab文件输入、输出(I/O)函数允许把其它格式 的数据文件直接读进matlab,它是以c语言文件I/O 函数为基础的。
1. 打开和关闭文件(fopen, fclose) 格式:fid=fopen(‘数据文件’,‘r’) ‘r’ —— 读 ‘w’ —— 写 ‘a’ —— 附加 ‘rt’ —— 读写
2020/4/19
27
break —— 中断
break 中断for, while循环语句的执行,在嵌套循 环结构中, break从最里层循环退出。
continue —— 继续
与for, while循环语句一起使用,结束本次循环,即 跳过循环体中尚未执行的语句,接着进行下一次是否 执行循环的判断。
各个省市对应的人口,第4列为人均GDP,第5列为各个省市对应的农村人口, %第6列为人均农业收入,第7列为各个省市对应的城镇人口,第8为人均城镇收
入,第9列为人均总收入. 第10列为宏观区域号,第11列为三大带号.
%****以下几步GDPPC/TPCI/RPCI/UPCI/为0,让其对应的人口也为0; data_belt_macro_mean_gem(find(data_belt_macro_mean_ge
2020/4/19
2
一、matlab的工作模式
指令驱动模式
通常matlab以指令驱动模式工作,即在 matlab 窗口下当用户输入单行指令时, matlab 立即处理这条指令,并显示结果,这 就是matlab命令行方式。
命令行操作时,matlab窗口只允许一次执 行一行上的一个或几个语句。
2020/4/19
3
例如: x1=0:10 x1 =
第五章 MATLAB的程序设计基础
编制M函数文件,实现不等长多项式的加法运算。 编制M函数文件,实现不等长多项式的加法运算。
33
a = [1 2 3 4 5 4 3 2 1 0]
34
35
36
37
2.switch - case结构 case结构
switch 表达式 case 值 1 语句体 1 case 值 2 语句体 2 ¦ otherwise 语句体 n end
26
while 表达式 循环体 end while和end是必需的,不可省略, while和end是必需的,不可省略,而且必须配对 是必需的 使用。 使用。 只要表达式为逻辑真,就执行循环体;一旦表达式 只要表达式为逻辑真,就执行循环体; 为假,就结束循环。 为假,就结束循环。 表达式可以是向量也可以是矩阵, 表达式可以是向量也可以是矩阵,如果表达式为 矩阵,则当所有的元素都为真才执行循环体, 矩阵,则当所有的元素都为真才执行循环体,如果表 达式为 NaN,MATLAB 认为是假,不执行循环体。 NaN, 认为是假,不执行循环体。
for 循环变量 = 表达式 循环体 end for - end 循环结构的执行过程是: 循环结构的执行过程是: 从表达式矩阵的第一列开始, 从表达式矩阵的第一列开始,依次 将表达式矩阵的各列之值赋值给循 环变量,然后执行循环体中的语句, 环变量,然后执行循环体中的语句, 直到最后一列。 直到最后一列。
第五章 MATLAB的程序设计基础 MATLAB的程序设计基础
MATLAB的工作方式有两种,一种是交互式的指令 MATLAB的工作方式有两种,一种是交互式的指令 的工作方式有两种 行操作方式,即用户在命令窗口中按MATLAB MATLAB的语 行操作方式,即用户在命令窗口中按MATLAB的语 法规则输入命令行并按回车键后, 法规则输入命令行并按回车键后,系统将执行该 命令并即时给出运算结果。 一种是M 命令并即时给出运算结果。 一种是M文件的编程 工作方式,用户通过在命令窗口中调用M文件, 工作方式,用户通过在命令窗口中调用M文件, 从而实现一次执行多条MATLAB语句的方式。 MATLAB语句的方式 从而实现一次执行多条MATLAB语句的方式。M文 MATLAB语句 命令行)构成的ASCII 语句( ASCII码文 件是由 MATLAB语句(命令行)构成的ASCII码文 本文件, 为扩展名。 本文件,其文件名必须以 .m 为扩展名。 M文件又分为命令M文件(简称命令文件或脚本文 文件又分为命令 文件( 命令M 函数M文件(简称函数文件)两大类。 件)和函数M文件(简称函数文件)两大类。
MATLAB程序设计及应用实例.ppt
disp函数
调用格式为
disp(输出项) 其中输出项既可以为字符串,也可以为矩阵。 注意:用disp函数显示矩阵时将不显示矩阵的 名字,而且其格式更紧密,且不留任何没有意 义的空行。
pause函数
其调用格式为: pause(延迟秒数) 如果省略延迟时间,直接使用pause,则将暂 停程序,直到用户按任一键后程序继续执行。 若要强行中止程序的运行可使用Ctrl+C命令。
5.1.3 数据的输入输出指令
input函数 disp函数 pause函数
input函数
调用格式为: A=input(‘提示信息’,选项); 其中提示信息为一个字符串,用于提示用户输 入什么样的数据。 如果在input函数调用时采用's'选项,则允许 用户输入一个字符串。例如,想输入一个人的 姓名,可采用命令: xm=input('What is your name?','s')
5.1.4 选择结构- if语句
if语句
在MATLAB中,if语句有3种格式。
switch语句 try语句
1.单分支if语句
语句格式为:
if
end 当条件成立时,则执行语句组,执行完之后继 续执行if语句的后继语句,若条件不成立,则 直接执行if语句的后继语句
条件 语句组
2.双分支if语句
y
3.多分支if语句
多分支if语句格式为:
if 条件1 语句组1 elseif 条件2 语句组2 …… elseif 条件m 语句组m else 语句组m+1
end
3.多分支if语句
例5.2 输入一个字符,若为大写字母,则输出其后继字符, 若为小写字母,则输出其前导字符,若为数字字符则输出其 对应的数值,若为其他字符则原样输出。 程序如下: c=input('请输入一个字符','s'); if c>='A' & c<='Z' disp(setstr(abs(c)+1)); elseif c>='a'& c<='z' disp(setstr(abs(c)-1)); elseif c>='0'& c<='9' disp(abs(c)-abs('0')); else disp(c); end
第五章-MATLAB程序设计
第五章M A T L A B程序设计假如想灵活运用MATLAB去解决实际问题,想充分调动MATLAB——科学技术资源,必须涉及比较深层的MATLAB内容:脚本;函数(一般函数、内联函数、子函数);函数句柄的创建和使用;程序调试;面向对象编程。
第一节 M文件及程序运算符一、M文件概述用MATLAB语言编写的程序,称为M文件。
M文件可以根据调用方式的不同分为两类:命令文件(Script File)和函数文件(Function File)。
例:分别建立命令文件和函数文件,将华氏温度f转换为摄氏温度C。
①首先建立命令文件并以文件名exam5_1.m存盘。
clear; %清除工作空间中的变量f=input('Input Fahrenheit temperature:');c=5*(f-32)/9然后在MATLAB的命令窗口中输入exam5_1,将会执行该命令文件,执行情况为:>>exam5_1Input Fahrenheit temperature:73c =22.7778②首先建立函数文件f2cc.m。
function c=f2cc(f)c=5*(f-32)/9然后在MATLAB的命令窗口调用该函数文件。
>>f2cc(82.6)ans =28.1111二、M文件的建立与打开M文件是一个文本文件,它可以用任何编辑程序来建立和编辑,而一般常用且最为方便的是使用MATLAB提供的文本编辑器。
1、建立新的M文件为建立新的M文件,启动MATLAB文本编辑器有3种方法:(1)菜单操作。
从MATLAB主窗口的File菜单中选择New菜单项,再选择M-file命令,屏幕上将出现MATLAB 文本编辑器窗口;(2)命令操作。
在MATLAB命令窗口输入命令edit,启动MATLAB文本编辑器后,输入M文件的内容并存盘;(3)命令按钮操作。
单击MATLAB主窗口工具栏上的New M-File命令按钮,启动MATLAB文本编辑器后,输入M文件的内容并存盘。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序断点的设置
函 dbstop dbstatus dbtype dbstep dbstack dbup/dbdowm dbquit 数 显示断点信息 显示M文件文本 该函数用于从断点处继续执行M文件 显示M文件执行时调用的堆栈 实现工作区间的切换 结束调试状态 描 述
10
命令文件与函数文件对比2
%函数文件Renkou2.m function P1=Renkou(P0, r, n) p1=p0*(1.0+r)^n
%计算人口的公式P1=P0(1+r)n >>r=0.0107; >>n=2015-2000; >>p0=12.9533E8; >>p1=p0*(1.0+r)^n p1= 1.5195e+009
27
break , continue
break 和 continue 一般与 if 语句配合使用 continue :退出本次循环,执行下一次循环 退出本次循环, break :退出当前的 for 循环或 while 循环 return :返回一个值,退出函数 返回一个值,
28
echo ——用来控制m文件在执行过程中是否显 示代码
运行结果: 运行结果: sum = 5040
25
3.循环嵌套 .
clear for i=1:7 for j=1:7 switch abs(i-j) case {0,1} a(i,j)=1; otherwise a(i,j)=0; end end end a
1 1 0 0 0 0 0
运行结果: 运行结果: sum = 5040
23
2.for语句循环结构 . 语句循环结构
for循环变量=起始值:步长:终止值 循环体 End 步长为1时,”步长:”可以省略。
24
例:使用for结构计算7!= 1×2×3×…×7 clear sum=1; for i=1:7 sum=sum*i; end sum
使用keyboard命令中断程序,该命令实现函数工 作区间和命令窗口工作区间的交互,从而获得用户 所需要的信息,使用该命令后,程序将处于调试状 态,此时命令窗口的提示符由“>>”变为“K>>”, 用户可以进行相应的操作。 在函数头前加“%”,这样就将函数式M文件变为脚 本式M文件,而脚本式M文件运行时,其工作区间 就是MATLAB 7的工作区间,这样在出现错误的时 候就可以查询这个工作区间。
正正正正正正正
1 0.8 cos(t) 0.6 0.4 0.2
正正 正正
正正&正正
0 -0.2 sin(t) -0.4 -0.6 -0.8 -1 0
2
4
6
8
10
时时
5
M函数文件
function y ห้องสมุดไป่ตู้ dfw1(r,p)
…… 输出参数 res = r(1); p0 = p(1); …… y = -sum(res); 确保函数中包含一条给输出参数赋值的语句
31
keyboard —— 与input类似,功能更强 keyboard 调用键盘与调用m文件一样, 当keyboard在m文件中出现时,它停止文 keyboard m 件的执行并控制键盘,用于修改程序。
32
Matlab 三类计时函数
cputime:显示 Matlab 启动后占用的 CPU 时间; : 时间; tic,toc:秒表计时,tic 开始,toc 结束; :秒表计时, 开始, 结束; clock,etime:clock 显示系统时间,etime计算两次 显示系统时间, : 计算两次 之间的时间差。 调用 clock 之间的时间差。 短的运算程序一般计算时间没有意义,因为受OS 短的运算程序一般计算时间没有意义,因为受OS 调度策略影响,只有计算时间长的程序(30s以上 以上) 调度策略影响,只有计算时间长的程序(30s以上), 获取运算时间才有意义
1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1
26
5.3.2 其他控制语句
1. 2. 3. 4. 5. 6. 7. break语句 continue语句 input命令 keyboard命令 pause命令 echo命令 return语句
14
5.2.1 选择结构
成立 程序模块1 程序模块
条件
不成立 程序模块2 程序模块
MATLAB提供了两种选择 语句结构 :
if语句 switch语句
15
if语句
if表达式 程序模块1 else 程序模块2 end
16
if语句的两种变形
(1) 单分支if语句:只有一个分支的选择结构 if表达式 程序模块 end (2) 多分支if语句:超过2个的选择 if 2 if表达式1 程序模块1 elseif 表达式2 程序模块2 … elseif 表达式n 程序模块n else 程序模块n+1 end
38
错误识别函数及其功能
函 数 名 echo disp Sprintf&fprintf whos size keyboard return warning error 功能描述 在函数运行时显示代码 显示特定的值或信息 显示不同格式和类型的数据 列出工作区间的所有变量 显示矩阵的维数 中断程序运行,允许用户从键盘进行交 互操作 回复keyboard命令后函数的运行 显示特定的警告信息 显示特定的错误信息
2
5.1 M文件 文件
MATLAB工作模式 命令行方式 脚本式(命令式)M文件 函数式M文件
3
5.2 M命令文件 命令文件
M命令文件又称为脚本文件,是一串指令的集合。 用户只需键入该命令文件的文件名,系统就会自动 逐行执行该文件中的各条语句。 适用于小规模运算。
4
例5-1 使用M命令文件绘制正弦和余弦曲线
33
Matlab 计时函数的调用
t0=cputime; 程序; 你的 Matlab 程序 time=cputime-t0; tic; 你的 Matlab 程序; 程序 time=toc;
t0=clock; 程序; 你的 Matlab 程序 time=etime(clock,t0);
Matlab中计时函数详解及用法 中计时函数详解及用法 /webas/blog/item/d04c70cbee18a50dbe09e693.html
>> Renkou2(12.9533E8, 0.0107, 15) p1= 1.5195e+009
11
m文件的创建
12
m文件搜索路径的设置 文件搜索路径的设置
13
5.3 控制语句
控制语句模式 顺序语句结构:程序按程序语句在执行流中的 顺序逐个执行。 选择语句结构:程序按设定的条件实现程序执 行流的多路分支。 循环语句结构:程序按给定的条件重复地执行 指定的程序段。
6
第一行:函数声明行 输入参数(可以没有输入参数)
函数名
函数名要遵守Matlab变量名的命名 规则, M函数存盘时的文件名与函 数名相同。
function 输出形参列表=函数名 输入形参列表) 输出形参列表 函数名(输入形参列表 函数名 输入形参列表 % 注释说明部分 可选 注释说明部分(可选 可选) 函数体语句(必须 必须) 函数体语句 必须 函数文件由 function 语句引导 第一行为引导行, 第一行为引导行,表示该 M文件是函数文件 引导行 文件是函数文件 函数名的命名规则与变量名相同 ( 必须以字母开头 ) 当输出行参多于一个时, 方括号括起来 当输出行参多于一个时,用方括号括起来 函数必须是一个单独的 文件 函数必须是一个单独的 M文件 函数文件名必须与函数名一致 函数文件名必须与函数名一致 以百分号开始的语句为注释语句 百分号开始的语句为注释语句 开始的语句为
17
例:将百分制的学生成绩转换为五级制的成绩输出
clear n=input('输入n= '); if n>=90 r='A' elseif n>=80 r='B' elseif n>=70 r='C' elseif n>=60 r='D' else r='E' end
运行结果: 运行结果: 输入n= 77 r= C
echo on — 打开文件的显示方式 echo off — 关闭文件的显示方式
29
input —— 提示用户从键盘输入数值、字 符串、表达式。 例:n=input('How many apples= ') How many apples= 5 n= 5
30
pause —— 暂停,等待用户响应 可令m文件执行暂停,并在继续执行前按 任一个键 。 pause(延迟秒数)
第五章
MATLAB的程序设计 MATLAB的程序设计
matlab语言称为第四代编程语言,程序简洁、 可读性很强而且调试十分容易。
本章介绍MATLAB程序设计的基本概念和方 程序设计的基本概念和方 本章介绍 选择语句、 循环语句、 文件及调试方 法 : 选择语句 、 循环语句 、 M文件及调试方 法等。 法等。
运行结果: 运行结果: 输入n= 95 r= A
20
5.2.2 循环结构
条件
程序模块
不成立 成立
MATLAB提供了两种类型 的循环语句 :
while语句循环结构 for语句循环结构
21
1.while语句循环结构 . 语句循环结构
while表达式 循环体 end
22
例:使用while结构计算阶乘 7!= 1×2×3×…×7 clear sum=1; i=1; while i<=7 sum=sum*i; i=i+1; end sum