MATLAB基础与应用-第9讲-H
matlab基础及其应用
matlab基础及其应用
Matlab是一种高级的数学软件,它可以帮助用户解决各种数学问题。
Matlab的基础知识包括语言的基本元素、数据类型、数组操作、变量、函数和程序结构等。
这些基础知识是Matlab应用的基础,也是Matlab编程能力的提高之路。
Matlab的应用领域也非常广泛,包括信号处理、图像处理、控制系统、机器学习、统计分析等。
在信号处理领域,Matlab可以实现数字信号处理、滤波器设计、音频处理等功能。
在图像处理领域,Matlab可以进行图像增强、图像分割、目标检测等处理。
在控制系统领域,Matlab可以进行控制器设计、系统仿真、系统优化等操作。
在机器学习领域,Matlab可以进行数据预处理、模型建立、训练和测试等操作。
在统计分析领域,Matlab可以进行数据可视化、统计推断、回归分析、聚类分析等操作。
Matlab的应用不仅限于科研领域,也可以应用于工业生产中。
例如,在物联网领域,Matlab可以进行数据采集、处理和分析;在汽车工业领域,Matlab可以进行车辆仿真、控制系统设计和测试;在航空航天领域,Matlab可以进行飞行控制、飞行动力学分析等操作。
总之,Matlab是一种功能强大、应用广泛的数学软件,掌握其基础知识和应用技能对于科研工作和工业生产都具有重要意义。
- 1 -。
《MATLAB基础教程》第9章
《MATLAB基础教程》第9章首先,本章介绍了函数的定义。
函数是一个独立的程序,可以在MATLAB中重复使用。
函数由输入参数、输出参数和函数体组成。
输入参数是函数运行时需要的参数,输出参数是函数运行结束后返回的结果。
函数体是函数实际执行的代码,可以包括各种MATLAB语句和命令。
在函数定义完成后,可以通过函数名和参数调用函数来使用它。
接下来,本章介绍了函数的调用。
在调用函数时,需要提供所需的输入参数,然后函数会执行函数体中的代码,并返回输出参数。
函数调用的方式有两种:一种是直接在MATLAB命令行中调用函数,另一种是在脚本文件中调用函数。
无论使用哪种方式,都可以通过函数名和参数来调用函数。
然后,本章介绍了函数的调试。
在函数编写完成后,可以使用MATLAB的调试功能来测试和调试函数。
调试功能包括设置断点、单步执行、变量观察等。
通过调试功能,可以逐行查看代码执行的过程,以便找出和解决问题。
接着,本章介绍了脚本文件的创建和运行。
脚本文件是一种包含MATLAB命令和语句的普通文本文件。
脚本文件中的命令和语句按照从上到下的顺序依次执行。
脚本文件的创建就是简单地将需要执行的命令和语句按照一定的顺序写入一个文本文件中。
脚本文件的运行可以通过在MATLAB命令行中输入脚本文件的名称来实现。
最后,本章总结了函数和脚本文件的使用场景。
函数适用于需要重复使用一段代码的情况,可以提高代码的复用性和可维护性。
脚本文件适用于一次性执行一系列的命令和语句的情况,可以批量处理数据和进行一些简单的计算。
总的来说,第9章《MATLAB基础教程》主要介绍了MATLAB中的函数和脚本文件的概念和用法。
通过本章的学习,读者可以了解到如何定义、调用和调试函数,以及如何创建和运行脚本文件。
函数和脚本文件是MATLAB中常用的工具,能够提高编程的效率和代码的可读性。
掌握了这些知识,读者可以更好地利用MATLAB进行数据分析和科学计算。
matlab教程第9讲
3、使用句柄操作图形对象
delete函数
% delete_example.m % 创建图形对象句柄 t=linspace(1,10,100); y=exp(-t/2).*sin(3*t); Hf_plot=plot(t,y,'-r*'); % 添加文本注释 text(2.1,-0.3,'\fontsize{12}y=exp(t/2).*sin(2*t)','Tag','A2'); input('任意键清除文本') H_tag=findobj(0,'Tag','A2'); delete(H_tag)
>> %设置新属性
>> set(Ht_text,'position',[-2 3]) >> H_figure=get(gca,'children') H_figure = 161.0056 160.0107 >> T_figure=get(H_figure,'type') T_figure = 'text' 'surface'
2、访问图形对象句柄
>> %设置文本注释并添加标签
9.2 图形对象创建
>> text(-4,2,'fontsize{12} surface','Tag','A1')
>> Ht_text=findobj(0,'Tag','A1')
(完整版)matlab第九讲教案
西南科技大学本科生课程备课教案计算机技术在安全工程中的应用——Matlab入门及应用授课教师:徐中慧班级:专业:安全技术及工程第九章 高级绘图课型:新授课 教具:多媒体教学设备,matlab 教学软件一、目标与要求掌握matlab 如何处理三种不同类型的图形文件,使用句柄图形指定绘图的句柄并调整特性,通过matlab 两种技术的任意一种创建动画。
二、教学重点与难点本堂课教学的重点与难点在于引导学生掌握句柄图形的使用,并掌握matlab 创建动画的方法。
三、教学方法本课程主要通过讲授法、演示法、练习法等相结合的方法来引导学生掌控本堂课的学习内容。
四、教学内容(1)火箭垂直向上发射。
在t=0时火箭发动机关闭,此时火箭的高度为海拔500,速度为125m/s ,考虑重力加速度,根据等式29.8()125500,02h t t t t =-++f ①创建函数heigh t ,以时间为输入变量,火箭的飞行高度为输出变量。
利用函数对下面的②和③进行求解。
②时间增量为0.5秒,变化范围0到30秒,画出函数height 与时间的关系曲线。
③计算火箭开始向地面降落的时间(可以使用函数max )。
④创建函数height 的函数句柄height_handle 。
⑤以height_handle 作为函数fplot 的输入参数,画出0到60秒内的函数曲线。
⑥用函数fzero 求火箭返回地面所用的时间(当火箭返回地面时,函数height 的值应该等于0)。
fzero 是复合函数,可以用函数或函数句柄作为输入参数。
调用方法如下:fzero(function_handl e ,x_guess)函数fzero 的两个输入参数分别是函数句柄和函数值接近0时的x 的估算值。
读者可以根据绘出的曲线选择合理的x_guess 值。
①function output=height(t)output=-4.9.*t.^2+125.*t+500;②%% two t=0:0.5:30; h=height(t); plot(t,h,'o-r') hold on %% three [a,b]=max(h); t_max=t(b) %% fourheight_handle=@(t) height(t);%% fivefplot(height_handle,[0,60]);%% sixfzero(height_handle,30)(2)①创建匿名函数my_function,计算下式:253x---+x x e②用函数fplot画出x在-5到+5之间的函数曲线。
第9章 《Matlab软件基础及应用》
第九章句柄图形9.1 句柄图形体系图形对象、对象句柄和句柄图形树结构对象属性(2)属性例如:'LineStyle', '-', 'LineWidth', 2.0(2)缺省属性9.2 图形对象的操作图形对象创建指令一览h=figure(n)h=axes('position',[left,bottom,width,height])h=line(x,y,z)h=surface(x,y,z,c)h=rectangle('position',[x,y,w,h],'curvature',[xc,yc])h=patch('faces',fac,'vertices',vert)h=image(x)h=text(x,y,'string')h=light('Position',[1 0 0])h=uicontrol('property',value)h=uimenu(('property',value)9.2.2对象句柄的获取方法要设置图形对象属性值,首先要知道该对象的句柄(1)从图形创建指令获得句柄h=plot(x,y)(2)追溯法获取句柄h_pa= get(H_know,'Parent')h_ch= get(H_know,'Children')(3)当前句柄的获取gcf 返回当前图形窗口的句柄gca 返回当前轴的句柄gco 返回“被鼠标最近点击”的图形对象句柄(4)根据对象特性获取句柄h=findobj(H_ori,PN,PV) 在H_ori指定对象上,寻找与属性对(PN,PV)匹配的对象句柄clf reset,t=(0:pi/100:2.*pi)’;tt=t*[1 1];yy=sin(tt)*diag([0.5 1]);plot(tt,yy);hb=findobj(gca,’Color’,’b’);(5)根据对象“诨名’获取句柄h=plot(x,y,'Tag','A4')h=findobj(0,'Tag','A4')【例9.2-1】画网线图,并得相应句柄;追溯法找所在图形窗句柄;gcf 和gca演示。
matlab基础及其应用
matlab基础及其应用MATLAB基础及其应用一、Matlab简介1、Matlab是一款非常强大的多元计算工具软件,由美国MathWorks公司研发,有Matlab R2011a、Matlab R2008b、Matlab R2007b、Matlab R2006b和Matlab R14等多个版本;2、Matlab可以实现矩阵运算、科学计算、数据处理、函数的数值求解,是数学计算和图形显示的理想工具,是实现数据分析、科学计算的快速有效的软件。
3、Matlab可以进行数值计算、数据可视化、编程开发、仿真、测控等功能,广泛应用于电子、电气、物理、化学、生物、社会统计学、遥感、机器人控制、金融数学等多个领域。
二、Matlab的基本操作1、打开MatlabWindows:双击桌面上的Matlab快捷方式,或者在开始-运行-窗口中输入matlab,可以打开Matlab软件。
2、Matlab软件界面Matlab 主界面包括:菜单栏,工具栏,命令行,编辑窗口,工作空间,绘图窗口,帮助窗口。
3、在Matlab中运行程序打开Matlab后,编写程序代码,可以在编辑窗口编辑程序代码,也可以在命令窗口编辑程序代码,然后可以在命令窗口中运行代码,程序运行完毕, Matlab会将程序运行结果显示出来。
4、Matlab中绘图Matlab图形处理功能强大,它能够进行内置图形的生成、绘制、改变、添加文字、标记等,可以用鼠标调用图形的轮廓、边框、颜色、图线宽度、图形类型等,Matlab还支持多种类型的三维图形视图,可以产生出具有真实感的图形表现。
三、Matlab的应用Matlab应用于许多领域,包括控制、信号处理、数字图像处理、物理数学建模、科学计算、仿真、光学、生物医药、信息融合、自动控制、软件应用等。
1、在数字信号处理方面,Matlab是一个强大的信号处理平台,它与机器视觉系统、声纳处理、语音处理等有着很强的结合。
2、在通信领域,Matlab是一个强大的数据分析工具,可以快速的处理、分析通信信号,并通过它的可视化功能实时观测实验结果。
《MATLAB程序设计与应用》教学大纲
《MATLAB程序设计与应用》教学大纲一、课程介绍1.课程名称:MATLAB程序设计与应用2.适用对象:计算机科学与技术、软件工程、自动化等专业的本科生3.课程学分:3学分4.课程时长:36学时二、课程目标1.掌握MATLAB环境的基本操作和界面布局;2.理解MATLAB程序的基本语法和编程思想;3.能够利用MATLAB解决实际问题,并进行数据可视化;4.了解MATLAB在科学计算、图像处理、信号处理等领域的应用。
三、教学内容和安排1.第一讲:MATLAB入门-MATLAB环境介绍和基本操作;-MATLAB界面布局和常用工具;-MATLAB变量和数据类型。
2.第二讲:MATLAB基本算法-MATLAB算术运算和逻辑运算;-MATLAB矩阵和向量的操作;-MATLAB函数和脚本文件的编写。
3.第三讲:MATLAB流程控制-MATLAB条件语句和循环语句;-MATLAB函数和脚本文件的调用;-MATLAB调试和错误处理。
4.第四讲:MATLAB数据处理-MATLAB数据输入和输出;-MATLAB数据结构和文件操作;-MATLAB数据预处理和清洗。
5.第五讲:MATLAB数据可视化-MATLAB绘图命令和参数调整;-MATLAB二维和三维图像的绘制;-MATLAB图像保存和发布。
6.第六讲:MATLAB科学计算-MATLAB基本数值计算函数;-MATLAB数值积分和微分;-MATLAB符号计算和矩阵运算。
7.第七讲:MATLAB图像处理-MATLAB图像读取和显示;-MATLAB图像增强和滤波;-MATLAB图像分割和识别。
8.第八讲:MATLAB信号处理-MATLAB信号生成和频谱分析;-MATLAB滤波器设计和滤波;-MATLAB音频处理和语音识别。
9.第九讲:MATLAB应用拓展-MATLAB工具箱和函数库的使用;-MATLAB应用案例分析;-MATLAB与其他编程语言的集成。
四、教学方法和评价方式1.教学方法-讲述理论知识,引导学生动手实践;-组织实例演示和案例讨论;-提供课后练习和编程作业。
matlab基础及其应用
matlab基础及其应用MATLAB基础及其应用摘要:MATLAB是一种强大的计算机程序设计语言,可以使用它来进行简单的程序编写,绘图,数学建模,数据分析,科学计算等,广泛应用于工程,科研,教育等领域。
本文讲述了MATLAB的基础知识,并以实际的例子说明了MATLAB的应用领域,如:信号处理、电子信号仿真、计算物理、人工智能等。
关键词:MATLAB;计算机程序;信号处理;仿真MATLAB基础及其应用一、MATLAB简介MATLAB(Matrix Laboratory)是由美国MathWorks公司出版的商业数值计算软件,是一个用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,它拥有完善的算法库和强大的图形绘制工具,主要被用于科学计算。
MATLAB提供了一个强大的编程接口,可以用于代码编写,程序测试、程序调试,解决大量的复杂科学计算问题。
二、MATLAB方面1、变量MATLAB提供了丰富的变量,包括标量(单个数值)、矢量(一维数组)、矩阵(二维数组)、多维数组(三维及以上数组)。
MATLAB的变量不需要预定义,该变量在程序中第一次使用时就被自动创建。
2、输入输出MATLAB有丰富的输入输出指令,可以使用输入指令(input)输入数据,使用输出指令(disp)输出结果,也可以使用文件输入输出指令(load,save)进行文件的读写操作。
3、语法MATLAB的语法与传统的程序设计语言大致相同,它也是一种基于程序流程控制的程序设计语言。
MATLAB的语法也有一些特殊之处,如:数组元素的下标从1开始,加号(+)表示数学上的加法,减号(-)表示数学上的减法,乘号(*)表示数学上的乘法,除号(/)表示数学上的除法。
三、MATLAB的应用1、信号处理MATLAB作为一种多功能的计算机语言,常常用于信号处理,如:正弦波分析,信号采集,声音处理,图像处理等。
2、电子信号仿真MATLAB也常用于电子信号仿真,电路模拟,信号发生器模拟等,可以使用MATLAB来设计复杂的电子电路,例如:数字逻辑电路、滤波器、时钟电路等,并进行仿真。
MATLAB基础教程(第四版)第9章 MATLAB句柄图形
图形对象是 MATLAB 显示数据的基本绘图 元素,每个对象拥有一个唯一的标志,即 句柄。通过句柄可以对已有的图形对象进 行操作,控制其属性。
MATLAB 中这些对象的组织形式为层次结 构,如图所示。
2021年8月23日
第5页
MATLAB R2018b 基础教程
2021年8月23日
第9页
MATLAB R2018b 基础教程
MATLAB 的图形对象(6/7)
Annotation 对象 它是 MATLAB 中的注释内容,存在于因此 的坐标系中,该坐标系的范围为整个图形 窗口。用户可以通过规范化坐标将注释对 象放置于图形窗口中的任何位置。规范化 坐标的范围为从 0 到 1,窗口左下角为 [0,0],右上角为 [1,1]。
Interruptible
确定当前的响应函数是否可以被后继的响应函数中断
Parent
该对象的上级(父)对象
Selected
表明该对象是否被选中
SelectionHighlight
指定是否显示对象的选中状态
Tag
用户指定的对象标签
Type
该对象的类型
UserData
用户想与该对象关联的任意数据
Visible
2021年8月23日
第7页
MATLAB R2018b 基础教程
MATLAB 的图形对象(4/7)
Core 对象 包括基本的绘图单元,包括线条、文本、多边形 及一些特殊对象,如表面图,表面图中包括矩形 方格、图像和光照对象,光照对象不可视,但是 会影响一些对象的色彩方案。
2021年8月23日
第8页
设置该对象是否可见
2021年8月23日
Matlab基础与应用
rand(3,3)= 0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
382/859 1627/1765 583/1437
Format rat rand(3,3) = 989/1607 313/424 2131/2278
609/769 355/2014 2571/2804
例:求下列极限。 Problem 1:
syms a m x; f=(x*(exp(sin(x))+1)-2*(exp(tan(x))-1))/(x+a); limit(f,x,a) ans = (1/2*a*exp(sin(a))+1/2*a-exp(tan(a))+1)/a Problem 2: syms x t; limit((1+2*t/x)^(3*x),x,inf) ans = exp(6*t)
级数求和
4. 级数(级数求和) 级数求和运算是数学中常见的一种运算。例 如: f(x)=a0+a1x+a2x2+a3x3+…+anxn 函数symsum可以用于此类对符号函数f的求和 运算。该函数的引用时,应确定级数的通项 式S,变量的变化范围a和b。该函数的引用格 式为:
symsum(s, a, b)
Plot绘图
例一:画出衰减震荡曲线
y
t
e3
sin
3t
及其包
络线
y0
t
e3
t的取值范围是
[0,4 ]
程序如下:
t=0:pi/50:4*pi; y0=exp(-t/3); y=exp(-t/3).*sin(3*t); plot(t,y,'-r',t,y0,':b',t,-y0,':b')
Matlab基础及应用
03
Matlab编程基础
控制流
循环结构
使用for和while循环实现重复执行代码块的功能。
条件结构
使用if-else或switch-case语句根据条件执行不同的代码块。
多分支结构
使用try-catch或if-else if-else实现多分支控制。
函数与脚本
函数定义
通过function关键字定义Matlab函数,实现特定功 能。
控制系统分析
Matlab支持对控制系统进行分析,如稳定性分析、根轨迹分析等。
控制系统设计
Matlab提供了控制系统设计函数,如pid、butter等,方便用户进 行控制系统设计。
05
Matlab与其他软件的集 成
与C/C的集成
混合编程
Matlab可以与C/C等编程语言进行 混合编程,通过Matlab的MEX函数 接口,将Matlab代码与C/C代码进 行集成,实现更高效的计算和数据处 理。
Matlab基础及应用
目录
• Matlab简介 • Matlab基础操作 • Matlab编程基础 • Matlab应用实例 • Matlab与其他软件的集成 • Matlab的未来发展与趋势
01
Matlab简介
Matlab的发展历程
1980年代初
MathWorks公司成立,开始研发Matlab的 前身。
科学计算与工程仿真
Matlab可以进行各种科学计算和工 程仿真,如流体动力学、电磁场等。
机器学习与人工智能
Matlab提供了丰富的机器学习工具 箱和函数库,支持人工智能领域的应 用。
02
Matlab基础操作
变量与数据类型
1 2 3
变量命名规则
matlab第九讲
Parent、UserData、Visible等公共属性外,还有一些常用 的特殊属性。 1.基本控制属性 (1)Style属性。 (2)Tag属性。 (3)String属性。 (4)Type属性。 (5)BackgroundColor、ForegroundColor属性。 (6)Position属性。 (7)Units属性。 (8)字体属性。包括: FontAngle属性。
第九章 图形用户 界面设计
目 录
9.1用户界面对象 9.2图形用户界面设计工具 9.3GUI编程
本章学习目标 掌握GUI开发环境(GUIDE)的使用方法。 掌握各种控件的属性和创建方法。 掌握菜单设计的方法。 掌握回调函数的使用方法。
9.1用户界面对象
在MATLAB中,每个图形用户界面都是由若干个不同的用户 界面(UI)对象组成的。用户界面也是有层次的,其层次结 构如图所示。
9.2.3菜单编辑器 利用菜单编辑器可以创建、设置、修改下拉式菜单和快捷菜 单。从GUI设计窗口的工具栏上选择”Menu Editor”命令按 钮 ,或者选择“Tool”菜单中的“Menu Editor”命令,即 可 打开菜单编辑器。 1.创建菜单 菜单编辑器左上角的第1个按钮用于创建一级菜单项。用户 可以通过单击它,来创建一级菜单。第二个按钮用于创建一 级菜单的子菜单,在选中已经创建的一级菜单后,可以单击 该按钮来创建选中的一级菜单项的子菜单。 菜单编辑器有两个选项卡,选择MenuBar选项卡,可以创 建下拉式菜单。选择Context Menus选项卡,可以创建快 捷菜单。
1.事件驱动机制 面向对象的程序设计是以对象感知事件的过程为编程单位, 这种程序设计的方法称为事件驱动机制。 2.回调函数 回调函数就是处理该事件的程序,它定义对象怎样处理信息 并响应某事件,该函数不会主动运行,是由主控程序调用的。 gcbo为正在执行回调的对象句柄,可以使用它来查询该对象 的属性。例如: get(gcbo,’Value’) MATLAB将Tag属性作为每一个控件的唯一标识符。GUIDE 在生成M文件时,将Tag属性作为前缀,放在回调函数关键 字Callback前,通过下画线连接而成函数名。例如:
MATLAB基础应用案例教程第九章
9.1 MATLAB 与外部数据和程 序交互组件
• 2 数据输入输出接口 mat 文件 • mat 文件是 MATLAB 数据存储默认的存储文件格式,MAT
LAB 文件与其他编程环境的数据交换是通过 mat 文件来实现的。 以 mat 为扩展名的文件是以二进制形式存储的标准格式,它由文 件头和数据变量组成。 文件头包括版本信息、 操作平台信息和文件 创建时间,是一个文本文件,可用任意文本编辑器打开查看。 数据 变量类型包括字符串、 矩阵、 数组、 结构和单元阵列,它以字节流 的方式顺序地将数据写入 mat 文件中保存,可直接用 save 命 令存储为 mat 文件。 使用时,用 load 命令把保存的 mat 文件数据读取到内存中即可。
• 则显示:
• 当出现以上信息,就说明已经安装成功。 打开网址,可以获取更多 的帮助信息。
上一页 下一页 返回
9. 2 MATLAB 调用 C 程序
• 【例 9 - 1】 使用 C + + 编写计算两个数的积程序,并保存为 mulxy cpp,在 MATLAB 环境中运行结果。
• 步骤如下: • (1) 使用 C + + 编辑器 ( 或文本编辑器) 编写程序命令, 并保存上一页 Nhomakorabea一页 返回
9.1 MATLAB 与外部数据和程 序交互组件
• 大多数函数原型类似于 MATLAB 函数。 Matrix h 是将 一些常用的 MATLAB 函数封装成 C + + 库文件,以适合于对 C / C + + 语言比较熟悉的用户使用。
• Mideva 提供了近千个 MATLAB 的基本功能函数,通过必 要的设置就可以直接实现与C + + 的混合编程,也不必再依赖 MA TLAB。 同时,Mideva 还提供编译转换功能,能够将MA TLAB 函数或编写的程序转换成C + + 形式的动态链接库,实现 脱离 MATLAB 环境。 Mideva 不仅可以转换独立的脚本文 件,而且可以转换嵌套脚本文件,功能相当强大。 但 Matcom 不能支持 struct 等类的参数运算,而且部分绘图语句无法实 现或得不到准确图像,因此不宜绘制三维图像。
第9讲 MATLAB遗传算法
s3’’=11011(27), s4’’=10000(16)
变异
设变异率pm=0.001。
这样,群体S1中共有
5×4×0.001=0.02
位基因可以变异。 0.02位显然不足 1位,所以本轮遗传操作不 做变异。
● 选择-复制(selection-reproduction)
● 交叉(crossover,亦称交换、交配或杂交)
● 变异(mutation,亦称突变)
选择 - 复制
通常做法是:对于一个规模为 N
的种群 S, 按每个染色体 xi∈S 的选择概率 P(xi) 所决
定的选中机会 , 分 N 次从 S 中随机选定 N 个染色体 ,
(3) 计算各代种群中的各个体的适应度 , 并
对其染色体进行遗传操作,直到适应度最高的个
体(即31(11111))出现为止。
首先计算种群S1中各个体 s1= 13(01101), s2= 24(11000) s3= 8(01000), s4= 19(10011) 的适应度f (si) 。 容易求得 f (s1) = f(13) = 132 = 169 f (s2) = f(24) = 242 = 576 f (s3) = f(8) = 82 = 64 f (s4) = f(19) = 192 = 361
于是,得到第二代种群S2:
s1=11001(25), s2=01100(12)
s3=11011(27), s4=10000(16)
第二代种群S2中各染色体的情况 染色体 s1=11001 s2=01100 s3=11011 适应度 625 144 729 选择概率 0.36 0.08 0.41 积累概率 0.36 0.44 0.85 估计的 选中次数 1 0 2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2015/1/21
命令文件: x = [1:3]; y = [1;2;3]; examp(x) examp(x,y’) examp(x,y,3)
10
Matlab and its Applications
5.3.4 全局变量与局部变量
Matlab中,函数文件中的变量是局部变量。 如在若干函数中,都把某一变量定义为全局变量,那么这 些函数将共用这个变量。 全局变量的作用域是整个Matlab的工作空间,所有函数都 可以对它进行存取和修改。 全局变量用global命令定义,格式为: global 变量名
function [s,p] = fcircle(r) % FCIRCLE calculate the area and perimeter of a circle of radii r %r 圆半径 %s 圆面积 %p 圆周长 %2006年2月30日编 s = pi*r*r; p = 2*pi*r;
2015/1/21
Matlab and its Applications
17
例5.15 程序的调试
③ 选择Debug菜单中的Continue命令,程序继续运行, 在断点处又暂停,再检查变量的值,一直到发现问题 为止。 ④ 切换工作空间,结束对程序的调试。打开编辑窗口中 的Stack下拉列表框,从中选择Base,即将工作空间 切换到主工作空间。然后选择Debug菜单中的Set Clear Breakpoint 命令清楚已设置的断点,在选择 Continue命令,去除白色箭头,完成调试。
7
Matlab and its Applications
函数的嵌套调用
在Matlab中,函数可以嵌套调用,即一个函数可以调用别的函数。一 个函数调用自身称为函数的递归调用。 例5.12 利用函数的递归调用,求n!。 n!本身就是以递归的形式定义的:
1,n 1 n! n(n 1)!,n 1
2015/1/21
Matlab and its Applications
18
5.5 Matlab矩阵分析与处理
5.5.1 特殊矩阵 常见的特殊矩阵有零矩阵、幺矩阵、单位矩阵等,这类特 殊矩阵在应用中具有通用性。 1、通用的特殊矩阵 常用的产生通用特殊矩阵的函数有:
zeros:产生全0矩阵(零矩阵)。 ones: 产生全1矩阵(幺矩阵)。 eye: 产生单位矩阵。 rand:产生0~1间均匀分布的随机矩阵。 randn:产生均值为0,方差为1的标准正态分布随机矩阵。 产生(0,1)区间均匀分布随机矩阵使用rand函数产生均值为0,方差为1 的标准正态分布随机矩阵使用randn函数。
2015/1/21 Matlab and its Applications 19
例5.16 建立随机矩阵:
① 在区间[20,50]内均匀分布的5阶随机矩阵。 ② 均值为0.6,方差为0.1的5阶正态分布随机矩 阵。
命令如下:
x= 48.5039 42.8629 38.4630 26.9342 33.6940 43.7581 38.2053 20.5551 47.6544 34.5795 44.6422 42.1462 46.7390 33.3411 25.2880 y = 0.6 + sqrt(0.1)*randn(5) x = 20+(50-20)*rand(5) 32.1712 48.0641 47.5071 32.3081 46.8095 21.7367 30.5860 44.3950 20.2958 24.1667
MATLAB基础与应用
Matlab And Its Applications
Xiaoming Huang
School of Science, BJTU
xmhuang@
Matlab and its Applications
MATLAB基础与应用
Matlab And Its Applications
2015/1/21
Matlab and its Applications
11
5.3.4 全局变量与局部变量
例5.13 全局变量应用示例。 先建立函数文件wadd.m,该函数将输入的参数加权相加: global ALPHA,BETA function f = wadd(x,y) f = ALPHA*x + BETA*y; 在命令窗口中输入:
显然,求n!需要求(n-1)!,这时可采用递归调用。函数如下: function f = factor(n) if n<=1 f = 1; else f = factor(n-1)*n; %递归调用求(n-1)! end
2015/1/21 Matlab and its Applications 8
函数的嵌套调用
2015/1/21 Matlab and its Applications 4
说明:
3、关于return语句 如果在函数文件中插入了return语句,则执行到该语句就结束函数 的执行,流程转至调用该函数的位置。通常也不使用return语句。 例5.10 编写函数文件,求半径为r的圆的面积和周长。 函数文件如下:
2015/1/21
Matlab and its Applications
14
5.4.1 程序调试概述
Matlab对程序逻辑错误时无能为力的,不会给出任何提 示信息。可以通过调试手段来发现。 采取的方法如下: ① 将程序的一些主要中间结果输出到命令窗口,从而确 定错误的区段。 ② 使用Matlab的调试菜单(debug),通过图像界面操作 来实现程序调试。 ③ 或使用命令方式来实现程序调试。
第9讲
5.3 函数文件
函数文件是另一种形式的M文件,每一个函数文件都定 义一个函数。Matlab提供的标准函数大部分是由函数文 件定义的。
5.3.1 函数文件的基本结构
函数文件由function语句引导,其基本结构为: function 输出形参表 = 函数名(输入形参表) 注释说明部分 函数体语句
Matlab在函数调用上有一个与一般高级语言不同之处: 函数所传递参数数目的可调性,即参数的数量可以改变。 在调用函数时,Matlab用两个预定义变量nargin和nargout 分别记录调用该函数时的输入实参和输出实参的个数。 例5.13 nargin用法示例 函数文件examp.m:
function fout = charray(a,b,c) if nargin == 1 fout = a;end if nargin == 2 fout = a+b;end if nargin == 3 fout = (a*b*c)/2; end
函数文件:tran.m: function [rho,theta] = tran(x,y) rho = sqrt(x*x+y*y); theta = atan(y/x);
2015/1/21
调用tran.m的命令文件main1.m: x = input(‘please input x=:’);
y = input(‘please input y=:’); [rho,the] = tran(x,y); rho the
其中,以function开头的一行为引导行,表示该M文件是一个函数 文件。 当输出形参多于一个时,应该用方括号括起来。
2015/1/21 Matlab and its Applications 3
说明:
1. 关于函数文件名 函数文件名通常由函数名再加上扩展名.m组成。当函数文 件名与函数名不同时,Matlab将忽略函数名而确认文件名。 因此调用时使用函数文件名。 2. 关于注释说明部分
2. 断点操作 stop if error/warnings: 在程 序执行出现错误或警告 时,停止程序运行,进 入调试状态。
16
Matlab and its Applications
例5.15 程序的调试
有一个求水仙花数的程序ex.m,试设置断点来控制程序 执行。 调试步骤如下: ① 在if语句处设置断点:将插入点移至if语句所在行,选 择Debug菜单的Set/Clear Breakpoint命令,在该行前面 有一个红色圆点,程序运行时将在断点处暂停。 ② 运行程序,检查中间结果。在命令窗口输入命令: ex 在命令窗口输入变量名,检查变量的值。可以分析判断 程序 的正确性。
在命令文件中调用该函数文件,求 s = 1!+2!+3!+4!+5!。 s = 0; for i = 1:5
s = s + factor(i);
End S 在命令窗口运行命令文件,结果如下: s= 153
2015/1/21
Matlab and its Applications
9
5.3.3 函数参数的可调性
2015/1/21 Matlab and its 函数调用的一般格式是: [输出实参表] = 函数名(输入实参表) 注意:函数调用时,各实参出现的顺序、个数,应与函数 定义时相同。 例5.11 利用函数文件,实现直角坐标(x,y)与极坐标(ρ,θ)之 间的转换。
2015/1/21
Matlab and its Applications
13
5.4 程序调试
例如:输入下列程序: A = 87; B = 9.3; C = A+*B; 系统将给出错误信息: ??? Error: File: Untitled1.m Line: 3 Column: 7 Unexpected MATLAB operator. 通过分析Matlab给出的错误信息,不难排查程序中的语法 错误。
ALPHA = 1; BETA = 2; s = wadd(1,2) 输出为: s= 5