MATLAB电子教案(7)

2019-06-11 09:45

五、句柄图形简介

句柄图形(Handle Graphics)是指MATLAB使用的图形对象系统,它用于实现图形绘制和可视化函数。 1、句柄图形的概念

句柄图形是基于对象的概念,即图形的每一部分都是一个对象,每一个对象都存在与其相关的一系列句柄,而每一个对象可根据需要改变属性。

例:建立图形窗口对象演示。

解:h=figure('color','white','toolbar','none');

当用户调用一个绘图函数时,MATLAB就创建了使用各种图形对象的图形。而创建一个图形对象的同时,MATLAB也为该对象指定了一个标识符(identifier),这就是句柄。如上例中的h。

2、句柄图形的应用

用户可以使用句柄,并通过函数get()和函数set()访问对象的属性。格式: get(handle) 获得对象的全部属性

get(handle,’ ‘) 获得对象的指定属性“PropertyName”

set(handle,’PropertyName’,Property Value) 设置PropertyName的属性为Property Value 说明:①handle为图形对象句柄,PropertyName为属性名。 例:句柄图形应用演示。 解:>> x=1:10; >> y=x.^3; >> h=plot(x,y);

>> set(h,'Color','red') >> get(h,'LineWidth') ans =

0.5000

2.6 程序设计基础

一、M文件 1、M文件特点

M文件有两种形式,即M脚本文件(Script File)和M函数文件(Function File),扩展名均为.m。 2、M脚本文件

第 31 页/共 63页

脚本文件时一种简单的M文件,它没有输入、输出参数,而是包含了一系列MATLAB命令的集合,类似于DOS下的批处理文件。

例:通过M脚本文件,绘制一幅“花瓣图案”。 解:(1)编写M脚本文件。

(2)运行M脚本文件。有两种运行方式:

①选择M文件编辑/加调试器窗口菜单“Debug|Run”。

②确保M脚本文件所在路径为当前路径,然后在MATLAB命令窗口中输入命令(即文件名):e1

3、M函数文件

(1)M函数文件的概念

如果M文件的第一行包含function,那么这个文件就是M函数文件。每一个M函数文件都定义了一个函数。实际上,MATLAB提供的函数命令大部分都是由M函数文件定义的。

M函数文件比M脚本文件要复杂一些。从使用的角度来看,M函数文件是一个“黑箱”,一些数据被送进去并进行加工处理后,结果又被送出来。从形式上看,M函数文件与M脚本文件的区别在于:M函数文件的变量可以定义,但变量及其运算都仅在M函数文件内部起作用,而不在工作空间起作用,并且当M函数文件执行完后,这些内部变量将被清除。

(2)M函数文件的基本结构

第 32 页/共 63页

组成 函数定义行 H1行 函数体 格式 %注释说明 一条或若干条MATLAB命令 备注 可省略 可省略 function[输出变量列表]=函数名(输入变量列表) 函数帮助文本 %注释说明 M函数文件通常由四部分组成,具体如下:

①函数定义行,位于函数文件的首行,以MATLAB关键字function开头,函数名以及函数的输入变量和输出变量(返回变量)都在该行被定义。

②H1行,紧随函数定义行之后以%开头的第一注释行,用来概要说明该函数的功能。该行提供lookfor关键词查询和help在线帮助使用。

③函数帮助文本,位于H1行之后及函数体之前,可以有多行,每行均以%开头,用来对该函数进行注释,通常包括函数输入、输出变量的含义,函数调用格式说明,函数开发与修改的日期等。

④函数体,是函数的主要部分,由实现该M函数文件功能的MATLAB命令构成。它接收输入变量,进行程序控制,得到输出变量。

(3)M函数文件规则

①函数名必须与文件名相同,且为运行方便,脚本文件与所调用的函数文件最好放在同一文件夹内。 ②函数文件名必须以字母开头,后面可以是字母、下划线以及数字的任意组合,但不得超过31个字符。

③函数文件可以有零个或多个输入变量,也可以有零个或多个输出变量,对函数进行调用时,不能多于函数中规定的输入和输出变量个数。当函数有一个以上的输出变量时,输出变量必须包含在“[]”内,且变量之间以逗号分隔。

④函数输入和输出变量的实际个数分别 由MATLAB的两个预定义变量nargin和nargout给出,只要进入该函数,不论是否直接使用这两个变量,MATLAB都将自动生成这两个变量。

⑤函数文件中的所有变量除了事先进行特别声明外,都是局部变量。若需要使用全局变量,可使用函数global()来定义,而且在任何使用该全局变量的函数中都应该加以定义,即使在命令窗口也不例外。

(4)函数调用语句

与M脚本文件不同的是,M函数文件不能直接调用,而必须使用MATLAB的函数调用语句,该语句的基本结构为:

[输出变量列表]=函数名(输入变量列表)

例:使用M函数文件编写一个绘制任意半径和任意色彩线型的圆,并调用此函数。 解:(1)编写M函数文件。文件名为e2.m,内容如下: function sa=e2(r,s) %定义一个名为e2的函数

%circle %绘制一个以r为半径、线条属性由s定义的圆 %r %给定半径的数值

%s %给定曲线颜色的字符串 %sa %圆面积 %

a(r) %绘制半径为r的蓝色实线圆周

a(r,s) %利用字符串s给定的曲线颜色绘制半径为r的圆周 %sa=e2(r) %绘制半径为r的蓝色圆面,并计算圆面积

%sa=e2(r,s) %利用字符串s给定的曲线颜色绘制半径为r的圆面,并计算圆面积 if nargin>2

error('Too many input arguments.'); %错误信息 end

if nargin==1

第 33 页/共 63页

s='b'; end clf;

t=0:pi/100:2*pi; x=r*exp(i*t); if nargout==0 plot(x,s); else

sa=pi*r*r;

fill(real(x),imag(x),s) end

axis('square')

(2)保存M函数。将上述函数以e2.m为名保存。 (3)调用e2函数。可采用以下方法: 在MATLAB命令窗口中输入:

>> e2(2) %绘制半径为2的蓝色实线圆周 >> e2(2,'g') %绘制半径为2的绿色实线圆周

>> sa=e2(2) %绘制半径为2的蓝色圆面,并计算圆面积 sa =

12.5664

>> sa=e2(2,'g') %绘制半径为2的绿色圆面,并计算面积 sa =

12.5664

二、M文件编辑/调试器

1、启动M文件编辑/调试器的方法

(1)在MATLAB命令窗口中运行命令edit。 (2)左键单击工具栏图标。

(3)选择菜单“File|New|M=file”。 2、打开已建立的M文件的方法 (1)命令窗口中输入:edit 文件名

(2)左键单击工具栏上打开图标,再从弹出的对话框中选择所需打开的文件。 (3)选择菜单“File|Open”。

3、编写或修改后的M文件的保存方法

第 34 页/共 63页

单击工具栏保存图标,或菜单“File|Save”。 三、程序设计基础

1、全局变量和局部变量

全局变量的作用域是整个工作空间,通过命令“global”来定义,格式为:global x y z

如果想在不同的函数和MATLAB工作空间里使用同一个变量,就可以定义全局变量。如果一个变量为全局变量,则在任何一个函数里都可以对它进行赋值操作。

使用全局变量须遵循如下规则:

(1)全局变量的定义语句必须在使用该变量的语句前,为了提高程序的可读性,最好将所有全局变量的定义放在MATLAB程序的前面。

(2)一个函数如果需要调用某个全局变量,则在该函数中必须将这个变量定义为全局变量。

局部变量的作用域为函数文件所在的区域,其他函数文件无法对它实行调用。局部变量仅在其所在的函数文件运行时起作用,该函数文件运行完毕,局部变量自动消失。

2、数据类型 数据类型 数值型(Number Types) 逻辑型(Logical Types) 字符和字符串 (Characters and Strings) 日期和时间 (Dates and Times) 结构体(Structures) 元胞数组(Cell Arrays) 基本描述 包括:整型和实型、复数、不定值(NAN)、无穷大以及数据显示格式 有逻辑真(true)和逻辑假(false)两种状态 包括:字符、字符串、字符串元胞数组;字符串的比较、搜寻、替换 以及字符/数值转换 包括日期字符串,连续日期数、日期向量、日期类型转换以及输出显示格式 与C语言的结构体类似,可以存储不同类型的数据 矩阵的直接扩展,可以存储不同类型和规模的数组 函数句柄(Function Handles) 用于间接访问函数的句柄;可以很方便地调用其他函数 MATLAB类(MATLAB Classes) 使用面向对象类和方法,创建用户自己的MATLAB数据类型 Java类(Java Classes) 使用Java程序设计语言生成Java类 3、流程控制语句

主要有循环结构语句、条件(分支)结构语句、开关结构语句及试探性结构语句等。 (1)循环结构 ①for循环。格式:

for 循环控制变量=<循环次数设定> 循环体 end 说明:A.设定循环次数的数组可以是已定义数组,也可以是在for循环语句中新定义的数组,且定义的格式为:<初始值>:<步长>:<终值> 步长的缺省值为1

B.for循环可以嵌套使用。

例:使用for循环结构求

?k的值。

k?1100解:程序名为e3.m的MATLAB程序如下: sum=0; for k=1:100

sum=sum+k; end sum

第 35 页/共 63页


MATLAB电子教案(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:参考实用版个人蔬菜生鲜配送网络平台建设创业商业计划书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: