MATLAB的绘图功能及应用

MATLAB的绘图功能及应用
MATLAB的绘图功能及应用

课程论文(报告)

题目 MATLAB的绘图功能及应用学院名称核科学技术学院

指导教师刘林

职称讲师

班级核工 103 班

学号 20104530331

学生姓名胡维浩

2012年5月30日

目录

第一章常见图像文件格式

1.1 位图与矢量图 (3)

1.2 单色图像 (4)

1.3 灰色图像 (5)

1.4 PCX文件 (5)

1.5 TIF文件 (6)

1.6 BMP文件 (7)

1.7 GIF文件 (7)

第二章数字图像处理软件 MATLAB 简介

1.1 Matlab 主包 (8)

1.2 Simulink (9)

1.3 Matlab 工具箱 (10)

2.1 数值计算 (10)

2.2 算法开发 (11)

2.3 数据分析与可视化 (11)

2.4 系统建模与仿真 (11)

2.5 快速原型与实现 (11)

第三章应用举例:二维热传导方程有限容积法的MATLAB 实现

(11)

第四章学习心得 (19)

【内容提要】

数字图形图像处理是指采用计算机处理图形图像的技术。近些年随着计算机与信息技术的高速发展,数字图处理技术也得到了快速发展,已成为计算机科学、医学、生物学、信息科学等领域各学科之间学习和研究的对象。成为学术界的研究热门。MATLAB 是目前国内外广泛流行的数字计算软件。其具有较强的图像处理功能,操作直观,简洁,同时又是一个较好的图像处理系统的开发工具。近些年得到了很大的发展,已经广泛应用于科学计算和工程计算领域。本文基于 MATLAB 的数字图像处理环境,设计并实现了一个图像处理系统,论述了利用系统进行图像显示、图形绘制及图像处理过程。

【关键字】:MAT LAB、图像处理

【引言】

在信息化社会的今天,信息技术已经全面服务于社会的生产和生活的各个方面。信息是抽象的,它依附在各种媒体所表示的数据中,其中,图像信息是人类赖以获取信息的最重要的来源之一。随着计算机技术的迅猛发展,图像和图形技术不断融合,产生了各种图像处理软件。这些软件被广泛应用于计算机科学、工程学、统计学、物理学、信息科学、化学、生物学、医学乃至社会科学等领域,取得了令人瞩目的成就。MATLAB 是一种直观、高效的计算机语言。同时又是一个科学计算平台。由干 MATLAB 的各种优势和特点,己成为研究和解决各种具体工程问题的一种标准软件。本文着重介绍图形和数字图像处理的知识,阐述MATLAB的绘图功能及应用。

第一章常见图像文件格式

图像文件就是描绘了一幅图像的计算机磁盘文件。一幅现实世界的图像经由扫描仪、摄像机等设备采集、数字化后,便需要以图像文件的形式存储于计算机的磁盘中,然后才能被计算机处理。早期,各种图像的存储都由其采集者自行定义格式,随着计算机图像技术的发展,各领域逐渐出现了流行的图像格式标准,如公用领域常用的 GIF 格式,PC 机上的 PCX 格式,动画领域的 TGA 格式以及 CAD 领域中的 DXF 格式等。总的来说,有两种截然不同的图像格式类型:位图(光栅图)和矢量图。位图是用数据点来映射表示图素点的方式,而矢量图是用线段和形状描述图像。由于矢量图一般是在工程及专用领域中使用,它与位图之间的转换非常复杂。

1.1 位图与矢量图

位图(也叫光栅图或像素图)和矢量图是图像表示的两种不同方法。图像文件可以使

用其中任意一种或者同时使用两种表示方法。位图(bitmap)是现在最常用的表示方法,因为在一定范围内它易于实现,而且可用于任何图像。“位图表示”是将一幅图像分割成栅格,栅格的每一点(像素)的亮值(亮、暗程度或彩色)都单独记录。数据点(位,bit)“映射”(map)图像,因此得名“位图”。用一系列的线段或形状描述图像是矢量表示法,矢量表示法也可使用实心的或者有等级深浅的色彩填充的一些区域。矢量一词只表示线段,但通常对矢量文件的解释包括形状,如方形、图形等。

位图较适用于具有复杂的颜色、灰度等级或形状的图像,如照片、绘画和数字化了的视频图像.有些图像原来就是按照位图格式组织的,比如计算机屏幕显示,因此最容易以同样的方式记录。矢量格式较适用于线型圈.如计算机辅助设计(CAD)的图形,它们只有简单的形状、灰度和颜色。图表、图形和某些手工画的草图都是典型的矢量图像文件。但有时这样的图像也用位图格式记录,因为这样做会更简单些。在字处理应用软件中,根据图像所在的字形设计和打印过程的不同,字形字模和文档中使用的字符和符号频繁地在矢量和位图之间转换。

在矢量形式下,字模很容易约定缩放和改变 (斜体、黑体及其他变体),但在打印机内部所使用的是与电视机相同的栅格扫描,这时使用位图格式则更有效。相反,绘图仪是按照绘制线性图设计的,需要矢量数据。应用程序处理这两种格式的功能正越来越强。像 MicroslftWord 这样的字处理软件经常可以将矢量图像(如来自 CAD 程序的HPGL 绘图文件)和位图(如来自绘图程序的 PCX 文件)集成一体。但是,并不要求字处理软件处理图像,它们只是将图像简单地连到一个图像文档中。由于图像程序对图像数据进行操作,因此要选择最能与其目标兼容的方法。

1.2 单色图像

单色图像是简单格式。单色图像一半由黑色区和白色区组成。这种格式的典型图像是直线图和图表。给定图像大小后,这些文件的内容是比较紧凑的。例如在位图单色文件中,单独一位代表一个像素:1 为黑色,0 为白色,或者相反。在一些单色图像如照片和有深浅的草图中,会使用各种灰度,这种图像常称为灰度图像。

由于人眼会把一个很细致的黑白图案的像素解释成灰色,所以单色文件格式可以用于灰度图像,数据仍然可以是黑和白。使用黑色或某一种单色的点获得连续的该色灰度的过程称为半色调处理(halftoning)或抖动处理(dithering)。半色调处理适用于绝大多数的打印图像,因为在打印时通常一次只能使用一种颜色的墨水。

在单色文件中使用半色调或抖动获得灰度图像的方法存在一些缺点。首先使图像的

编辑比较困难,因为大多数图形程序不能区分出有阴影的点和用于画直线的点。另外,使用半色调处理的图像在显示灰度时层次太明显。再有,半色调处理会降低图像的有效分辨率。它必须使用几个像素来表示单独一个点的灰度值,以达到灰度的效果。而输出设备只具有使用二值的能力,如黑白激光打印机只有黑白两色,所以没有东西可以替代最终的输出文件,它必须有半色调数据。

2.3 灰度图像

将灰度图像记录为真正的灰度级,也就是不用半色调或抖动格式保存数据。在大多数图像应用程序中使用的就是真正的灰度级,因为这样做能简化编辑。用半色调或抖动格式来处理图像通常会引起问题,编辑过程中破坏了黑白像素完美的分布,引起视觉上的缺陷。真正的灰度级图像具有一定量的位深度。一个位图单色图像根据三个尺度来描绘,列的像素值(宽)、行的像素值(高)和用于表示像素亮度的位数(图像的深),也称作灰度级分辨率(greyscaleresolution)。

将灰度级和抖动进行组合,获得比实际显示更深的效果,这种办法也十分普遍。灰度级的精确表示是一个值得研究的问题。例如,考虑一个用非线性扫描仪扫描的图像。在输入输出设备中,非线性用一个称为 gamma 灰度系数)的量纲来描述,用在公式OUTPUT= ( INPUT) GAMMA 之中。扫描仪的输出文件可以记录该扫描仪的 gamma 值,其中 INPUT 是一个像素的原始亮度,OUTPUT 则是由扫描仪为像素建立的灰度级。扫描程序首先为扫描仪的 gamma 寻找一个值,之后可以精确地重新构造原始灰度信息。如果没有提供 gamma 的值,程序则假设数据己经为扫描仪的 gamma 作了调整或者使用一些缺省的gamma 值。Gamma 所表示的简单对数曲线与有些设备的非线性度不符合。

为解决这个问题,图像文件可以用表格的形式记录一个响应曲线。文件中可能出现的其他灰度数据,一般还包括关于原始图像的对比度和总体明亮度的信息。当图像数据被缩放或者值被移位时,需要这些数据,以适合某些表示方式下所允许的值范围。例如,没有这些信息,一个有意要低对比度的图像很可能被显示成不适当的高对比度。

1.4 PCX 文件

最先的 PCX 雏形是出现在 ZSOFT 公司推出的名叫 PCPAINBRUSH 的用于绘画的商业软件包中,以后,该软件逐渐完善,现在的 PC PAINBRUSH IV 己是一个功能强大的软件包了,并且微软公司将其移植到 Windows 环境中,成为 Windows 系统中一个子功能。目前,微软的 3.1 己广泛应用于 386 以上微机中。随着 Windows 的流行,加之其强大的图像处理能力,使 PCX 图像文件格式己越来越得到人们的重视。PCX 是采用

行和编码方案来对数据进行压缩。实际上,这种压缩不是很有效,压缩后数据量仍很大。

16 色 PCX 格式是单色格式的延伸,256 色 PCX 格式则是进一步延伸,前者是后者的基础。所有的 PCX 格式文件都带有一个 128 字节的文件头。文件头中标明了本图像的必要数据,如图像的大小、调色板的设置等等。PCX 格式中文件头的 manufacturer 字段总是被置为 oxoa,通过 oxoa 来判断是否为 PCX 格式文件,oxoa 是一个先决条件。version 字段是描述该文件的版本号的,到目前为止有 4 种版本号,根据不同的版本号来对文件数据进行译码。version 字段为零时,这个 PCX 格式文件是早期的 2.5 版。如果 version 字段为 2,这个 PCX 格式文件是 2.8 版本。2.8 版本的PCX 格式文件包括一个有效的调色板信息。如果 version 字段为 3时,这个 PCX 格式文件也是 2.8 版,但它与前者的 2.8 版略有不同,它使用一个缺省调色版。如果 version 字段为 5 时,这个 PCX格式文件是 3. 0 或更高版,它是针对 256 的 PCX 格式文件而设计的。encoding 字段目前只有一种值。它说明该文件的数据压缩方法是采用行程编码方法。也许将来 ZSOFT 公司会用新的、更有效的压缩方法,到那时,encoding 字段将有不同的值。

1.5 TIF 文件

标记图像文件格式(Tag Image File Format ) ,TIF 应该说是现存图像文件格式中最复杂的。它提供存储各种信息完备手段,可以存储专门的信息而不违反格式宗旨。

TIF 的设计共有 3 个目标:

护展性:可以不需违反老格式而支持新的图像类型,可以不影响老的应用程序读图像文件的能力而对格式支持新的信息域。

方便性:TIF 设计是不依赖于它所在其上执行的硬件和操作系统的。

可改性:TIF 的设计不仅仅作为一种交换图像信息的有效的中介,也可以作为一种自然的中间数据提供给图像编辑程序。

TIF 格式解决了许多问题,但同时也产生了一些问题。事实上,TIF 文件结构格式比大多数图形文件格式更为复杂,从而要求用更多的代码来控制它,导致文件读写速度慢。TIF 的版权由 Aldus 和 Microsoft 公司联合拥有,但 TIF 格式是公式范围内使用的,人们可以免费使用这个格式。TIF 文件由 3 个数据结构组成,分别为文件头,一个或多个称为 IFD 的标记指针的目录及数据本身。每一个 TIF 文件的第一个数据结构称为图形文件头,或 IFH。这个结构是一个 TIF 文件中唯一的、有固定位置的部分。IFH 是解释 TIF 文件的其余部分所需的重要信息。IFH 中第一个域,而且可能是最重

要的字节顺序域。如果文件中的字节顺序与图像文件被读出的字节顺序相反,则所有的16 位和 32 位整数值序列将不得不改变它们的顺序。IFH 的版本域通常包含 42H 的十进制值。这个域可以用来进一步定义一个文件是一个 TIF 文件。这个数字并非一个所希望的TIF 软件的版本号。事实上,这个数可能永远不会变,如果它改变了,就表示 TIF 文件的格式己经改变了,而且 TIF 读取程序也不能读这个文件了。TIF 格式的主要变化,可能改变版本域的,将和逻辑上的 TIF 可扩展性直接相关。IFH 的最后一个域包含从文件开始到图形文件目录(IFD)结构的字节的相对位置。

1.6 BMP 文件

随着 Windows 的逐渐普及,BMP 图像越来越多地被各种应用软件所支持。这主要是因为 Windows 把 BMP 作为其图像的标准格式,并且内含了一套支持 BMP 图像的API 函数。BMP 文件数据结构含有 BMP 文件的类型、大小和打印格式等信息。在Windows. 中对其进行了定义:

Typedef stuct tag BITMAPFILEHEADER{

WORD bftype; /*位图文件的类型,必须为 BMP

DWORD bfSize; /*位图文件的大小,以字节为单

WORD bfReservedl; /*位图文件保留字,必须为 0

WORD bfReservedl; /*位图文件保留字,必须为 0

DWORD bfoffBits; /*位图阵列的起始位置,以相对于位图文件/*头的偏移量表示,以字节为单位}BITMAPFILEHEADER;可见,位图信息数据结构含有位图文件的尺寸和颜色等信息。位图阵列记录了位图的每一个像素值。在生成位图文件时,

Windows 从位图的左下脚开始逐行扫描位图,将位图的像素值记录下来。这些记录像素值的字节组成了位图阵列。位图阵列有压缩形式和非压缩形式。在非压缩形式中,位图的每一个点的像素值—对应于位图阵列的若干位,位图阵列的大小由位图的宽度、高度及位图的颜色数决定。Windows 支持BI-RLE8 及 BI-RLE4 压缩位图存储格式,压缩减少了位图阵列占用的磁盘空间。

1.7 GIF 文件

GIF 图像文件格式的全称是 Graphics Interchange Format,它是 CompServe 公司推出的,最先使用在网络中用于图形数据在线传输。目前大多数个人计算机和许多UNIX 工作站都有能力处理GIF 图像,通过 GIF 提供的足够的信息,使得许多不同的

输入输出设备能方便地交换图像数据。CompServe 免费发行 GIF 格式说明书,使其得到了推广。从颜色的深度和图像大小来讲,它类似于 PCX:从结构来讲,它更类似于 TIF。它的特点包括 LZW 压缩,多图像的定序或覆盖,交错屏幕绘图以及文本覆盖。GIF 是主要为数据流设计的一种传输格式,而不是作为文件存储格式。也就是说,它具有顺序的组织形式。像 TIF 那样的存储格式,更普遍地使用随机组织形式,而不是顺序组织形式。这种顺序性质对图像没有什么实际影响,只当应用于多图像的顺序传输和显示这种专门而少见的情况时才起作用。但是,当你学习GIF 时,设想到多个彩色图像顺序地出现在一个屏幕上是很有益处的。GIF 有 5 个主要部分以固定顺序出现。所有部分由一个或多个块组成,每个块由每个字节中的标识码或特征码标识。这些部分的顺序为:文件头块、逻辑屏幕描述块、可选择的色表(调色板)、图像数据块(或特殊目的块)以及尾块。

第二章数字图像处理软件 MATLAB 简介

1980 年前后,Matlab 的首创者 Cleve Moler 博士在 New Mexico

大学讲授线性代数课程时,看到了用高级语言编程解决工程计算问题的诸多不便,因而构思开发了 Matlab 软件(Matrix Laboratory,矩阵实验室) 。该软件利用了 Moler 博士在此前开发的LINPACK(线性代数软件包)和 EISPACK(基于特征值计算的软件包)中可靠的子程序,用 Fortran 语言编写而成,集命令翻译,工程计算功能于一身。与 Fortran 语言和 C 等高级语言比较,Matlab 的语法规则更简单,更重要的是它贴近人思维方式的编程特点,使得用 Matlab编写程序有如在便笺上列公式和求解。

1. MATLAB 的组成

Matlab 软件主要由主包、Simulink 和工具箱 3 部分组成。

1.1 Matlab 主包

Matlab 主包包括以下 5 个部分;

(1) Mat1ab 语言

Matlab 语言是一种基于矩阵/数组的高级语言,它具有流程控制语句、函数、数据结构、输入输出,以及面向对象的程序设计特性。用 Matlab 语言可以迅速地建立临时性的小程序,也可以建立复杂的大型应用程序。

(2) Matlab 工作环境

Matlab 工作环境集成了许多工具和程序,用户用工作环境中提供的功能完成他们

的工作。Matlab 工作环境给用户提供了管理工作空间内的变量和输入、输出数据的功能,并给用户提供了不同的工具用以开发、管理、调试 M 文件和 Matlab 应用程序。

(3) 句柄图形

句柄图形是 Matlab 的图形系统。它包括一些高级命令,用于实现二维和三维数据可视化、图像处理、动画等功能;还有一些低级命令,用来定制图形的显示以建立 Matlab 应用程序的图形用户界面。

(4) Matlab 数学函数库

Matlab 数学函数库是数学算法的一个巨大集合,该函数库既包含了诸如求和、正弦、余弦、复数运算之类的简单函数;也包含了矩阵转置、特征值、贝塞尔函数、快速傅立叶变换等复杂函数。

(5) Matlab 应用程序接口(API)

Matlab 应用程序接口是一个 Matlab 语言向 C 和 Fortran 等其他高级语言进行交互的库,包括读写Matlab数据文件(MAT文件)。

1.2 Simulink

Simulink 是用于动态系统仿真的交互式系统。Simulink 允许用户在屏幕上绘制框图来模拟一个系统,并能够动态地控制该系统。Simulink 采用鼠标驱动方式,能够处理线性、非线性、连续、离散、多变量以及多级系统。此外,Simulink 还为用户提供了两个附加项:Simulink Extensions(扩展)和Blocksets 3(模块集)。Simulink Extensions 是一些可选择的工具,支持在 Simulink环境中开发的系统的具体实现,包括:

●SimulinkAccelerator

●Real-Time Workshop

●Real-Time Windows Target

●Stateflow

Blocksets 是为特殊应用领域中设计的 Simulink 模块的集合。包括以下几个领域的模块集:

●DSP(数字信号处理)

●Fied-Point(定点)

●Nonlinear Control Design(非线性控制设计)

●Communications(通信)

1.3 Matlab 工具箱

工具箱是 Matlab 用来解决各个领域特定问题的函数库,它是开放式的,可以用,也可以根据自己的需要进行扩展。Matlab 提供的工具箱为用户提供了丰富而实用的资源,工具箱的内容非常广泛,涵盖了科学研究的很多门类。目前,己有涉及数学、控制、通信、信号处理、图像处理、经济、地理等多种学科的二十多种 Mat lab 工具箱投入应用。这些工具箱的作者都是相关领域的顶级专家,从而确定了 Matlab 的权威性。应用Matlab 的各种工具箱可以在很大程度上减小用户编程时的复杂度。而 Mathworks 公司也致力于追踪各学科的最新进展,并及时推出相应功能的工具箱,毫无疑问,Matlab 能在数学应用软件中成为主流是离不开各种功能强大的工具箱的。Mathworks 公司自1984 年正式推出 Matlab 后,经过这些年的不断更新,交互性越来越好,功能越来越强大,己经成为国际公认的最优秀的数学应用软件之一。

2. MATLAB 的功能

现在的Matlab新版本早己不只停留在工程计算功能上,它由主包、Simulink以及功能各异的工具箱组成,以矩阵运算为基础,把计算、可视化、程序设计融会到了一个简单易用的交互式工作环境中。在这里可以实现工程计算、算法研究、符号运算、建模和仿真、原型开发、数据分析及可视化、科学和工程绘图、应用

程序设计(包括图形用户界面设计)等功能。

2.1 数值计算

MATLAB 提供了大约 600 多个数学和工程上常用的函数。这些函数的数值运算是针对矩阵操作优化过的,所以用户可以使用他来代替底层编程语言如 C 语言。在保持同样性能的情况下,编程工作量非常小,特别是在 MATLAB 6.x 以后,数值计算采用了LAPACK,BLAS,FFTW 等优秀数学函数库,使得计算效率得

到进一步的提升。

2.2 算法开发

强大的计算能力,方便易用的编程语言和丰富的数学函数使MATLAB 最适用于算法开发工作。典型的应用包括:数据分析,信号处理,图像处理,系统建模和高级算法研究等。并且不管用户是使用已有的算法,还是自行开发,MATLAB 提供了一个通用的平台。使用 MATLAB 进行算法开发就像平时书写数学表达式

一样。

2.3 数据分析与可视化

通过 MATLAB,用户可以分析所有类别的数据包括信号,图像,多项式,时间历程,多变量数据和线性系统等。从分析中总结出来的结果可以作为将来进一步的算法和模型开发的基础。此外,用户可以快速地将代码片段和知识转换成可以重复使用的自动分析例程,不需要变量声明和维数定义,可很快编写出程序。

2.4 系统建模与仿真

建立在 MATLAB 强大的数学内核基础之上,Simulink 采用框图方式方便地对非线性动态系统进行建模,仿真和分析。模型可以是含有离散时间、连续时间系统或混合的系统。针对不同的专业,Mathworks 还提供了专业的功能模块库,能够对包含控制系统,信号处理系统,通讯系统,电力系统等多学科的复杂系统

进行仿真和分析。利用 Simulink 提供的子系统和 S-function 功能,用户可以方便地建立自己的专业模块库,或将已有的代码结合到仿真模型中使用。

2.5 快速原型与实现

Real-Time Workshop 与 Stateflow Coder 直接从 Simulink 模型与 Stateflow 框图中生成高效的可移植代码。只需要简单的操作,用户无需繁琐的手工编程与调试就可以生成应用代码。生成的代码可以用作不同的目的,包括嵌入实时控制,信号处理,快速原型,独立运行程序,加速仿真或批仿真等。eal-Time Workshop 支持 Simulink 的外部应用模式,即把用户的实时目标板与 Simulink

的模型相连接。在外部模式下,用户对 Simulink 参数所作的任何改变将自动被下载到运行中的目标板上。用户可以在 Simulink 的示波器上实时监测目标板上的信号,考察其实时运行的结果

第三章MATLAB绘图功能应用案例

案例:二维热传导方程有限容积法的MATLAB 实现

均匀厚度无限大板传热分析

1)数学模型

均匀厚度无限大板传热问题可以被描述为只考虑扩散、一维瞬态热传导偏微分方程,该方程很容易推导,具体如下式:

数值计算中采用的物理量及参数如表 1 所示,因为板厚方向温度分布是关于中间平面对称的,所以厚度方向空间坐标 X 的定义域为板厚的一半,具体为:

2)关键 MATLAB 程序代码

3)计算结果与讨论

取时间等于 2、10、50、100、160s,运行程序,板厚方向的温度分布如图 3 所示。

另取时间等于 100s,运行下段程序:

有限容积法的数值解和精确解析解如图 4 所示,我们发现二者结果非常接近。

继续运行下段程序:

板厚方向的瞬态温度分布通过三维坐标直观的显示在屏幕上,这使得偏微分方程的解非常容易理解。

3.2二维矩形区域的传热分析

1)数学模型

矩形区域的传热问题可以被描述为只考虑扩散、二维瞬态热传导偏微分方程。给定边界条件如图 6 所示。

2)关键 MATLAB 程序代码

有限容积法形成离散代数方程组,是一个 5×5 的对角矩阵系统,采用超松弛因子的高斯迭代消去法进行求解,关键 MATLAB 程序代码如下:

3)运行结果

运行程序后,温度分布打印在屏幕上,如图 7 所示。

第四章学习心得

Matlab和其它语言不一样,如果抱着把其他语言的思想运用在Matlab里面的话,即使程序运行不出错,也很难把握Matlab的精髓,也就很难发挥Matlab的作用。在接触matlab之后,我发现matlab语法简单,易于绘制图形,编程也非常容易。Matlab是功能强大的科学及工程计算软件,它不但具有矩阵计算为基础的强大数学计算和分析功能,而且还具有丰富的可视化图形表现功能和方便的程序设计能力。Matlab的应用领域极为广泛,除数学计算和分析外,还被广泛用于自动控制、系统仿真、数字信号处理、图形图像分析、数理统计、人工智能、虚拟现实技术、通信工程、金融系统等领域。

为了提高程序运行效率,能使用矩阵方法处理的数据尽量用矩阵方法处理,毕竟矩阵处理是Matlab的强项。某些不能用矩阵处理,可设法构造出可以运算的矩阵。当不是很确定某个函数的用法和功能时,除了使用help或demo外,更方便更直接的方法就是自己构造一些简单数据试用一下函数。当使用矩阵运算时,直接看代码不是很容易理解,可把矩阵简单的写在草稿纸上,包括初始矩阵和矩阵的变换结果,然后借助草

稿纸上直观的矩阵运算理解整个表达式的意义。设置断点。设置断点最主要的目的就是查看中间变量的值,从中了解整个程序的运算过程。最主要也是最基本的就是对算法的正确理解,理解算法的原理和算法每一步的意义;当理解每一步的意义后,同样的目的可采用不同的方法进行处理。有时可以通过画图来帮助感性的了解数据,这样处理的时候不会太盲目。画图是Matlab又一强项。

可以这么说,任何问题都可以在MATLAB的帮助里找到解决的办法。问题不论大小,都是由更小的问题组成,把大问题化为小问题,小函数,然后再到MATLAB帮助里去找这种小问题,小函数的用法。

设置变量时尽量做到见名知义,条件判断中,y==0,a-c==0这类语句尽量减少使用,除非能够保证y、a、c在整个计算过程中都是整数。否则2个浮点数相减,不可能完全等于0.循环变量递减时必须显示给出步长,即i=5:-1:-5;如果递增时且步长为1,则可以省略,简写为i=-5:5,在引号环境下的语句中,如果需要使用单引号,则需要写成2个单引号的形式,不能一个双引号代替。

对于Matlab自带函数的问题,要多利用Matlab的帮助功能,例如:对于某些不是很明确的命令,只知道大体的所属范围,譬如说某个工具箱,直接在命令窗口中敲入helptoolboxname。可以这么说任何问题都可以在Matlab帮助里找到解决方法,问题不论大小,都是由更小的问题组成,到Matlab帮助里面去找这些小问题,就可以得到解决。在Matlab的使用中一定要仔细,整个程序中如果一个分号放错位置,都会导致程序不能运行,这样会花费大量时间去调试,往往还不能找到错误的地方。Matlab的计算功能强大,特别是对矩阵,矩阵转置:B=A’加减法运算:C=A+B,C=A-B,若A、B维数相同,则自动相加减;若二者之一为标量(数字)或字符,则应该将其遍加(减)与另一个矩阵。点运算非常重要,如当x是一个向量时,则求取数值时不能直接写成x^5,而必须写成x.^5。在进行矩阵的点运算时同样要求运算的两个矩阵的维数一致,或其中一个变量为标量。另外一些特殊函数,如sin()也是由点运算的形式进行的,因为它要对矩阵的每个元素求取正弦值。矩阵的点乘运算B=A.^A表示。矩阵的逻辑运算与C语言相似,A&B表示A与B。

Matlab简单便于应用,计算速度快,准确度高,对一般的计算语言来说,必须采用两层循环才能得到结果。这不但程序复杂,而且那讨厌的循环十分费时。MATLAB处理这类问题则简洁快捷得多,它只需直截了当的一条指令。Matlab的函数库十分庞大,包含2000多个函数。它几乎囊括了一般用户所需的所有函数。但Matlab和其它高级程序相比,程序的执行速度慢,占内存,且不能生成exe文件

MATLAB绘图功能大全

Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab 还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。 本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。 一、二维绘图 二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。 (一)绘制二维曲线的基本函数 在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。 1.plot函数的基本用法

plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x 坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。plot函数的应用格式 plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。 例51 在[0 , 2pi]区间,绘制曲线 程序如下:在命令窗口中输入以下命令 >> x=0:pi/100:2*pi; >> y=2*exp(-0.5*x).*sin(2*pi*x); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。 例52 绘制曲线 这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线: >> t=-pi:pi/100:pi; >> x=t.*cos(3*t); >> y=t.*sin(t).*sin(t); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 以上提到plot函数的自变量x,y为长度相同的向量,这是最常见、最基本的用法。实际应用中还有一些变化。

MATLAB中plotyy函数详解:matlab双Y轴作图

Matlab plotyy画双纵坐标图实例 x = 0::20; y1 = 200*exp*x).*sin(x); y2 = *exp*x).*sin(10*x); [AX,H1,H2] = plotyy(x,y1,x,y2,'plot'); set(AX(1),'XColor','k','YColor','b'); set(AX(2),'XColor','k','YColor','r'); HH1=get(AX(1),'Ylabel'); set(HH1,'String','Left Y-axis'); set(HH1,'color','b'); HH2=get(AX(2),'Ylabel'); set(HH2,'String','Right Y-axis'); set(HH2,'color','r'); set(H1,'LineStyle','-'); set(H1,'color','b'); set(H2,'LineStyle',':'); set(H2,'color','r'); legend([H1,H2],{'y1 = 200*exp*x).*sin(x)';'y2 = *exp*x).*sin(10*x)'}); xlabel('Zero to 20 musec.');

title('Labeling plotyy'); Q:右边用蓝色圈起来的tick能去掉吗由于用plotyy画图,为了使图尽量地显示出来,用了set(AX(1),'YLimMode','auto'),但这样可能会导致左边AX(1)和右边AX(2)的tick的间距不一样,影响美观。或者说能不能使plotyy画出的图两边的tick间距是一样的,这样在图形右边的tick就会重合在一起. A:如果只是想让plotyy的图美一些,可以使用其如下形式的调用方式: [AX,H1,H2] = plotyy(...) 其中AX(2)就是右边Axes对象的句柄,拿到它以后就可以set或者get来处理了,也可以把其ytick关掉。 A:也可以用line语句来画,就没有左边和上边的线了。 Q:plotyy(X1,Y1,X2,Y2,FUN1,FUN2),FUN1和FUN2应该怎么写 A:这两个FUN代表plotyy不一定要用两个plot,比如下面的例子,一条曲线用plot,一条用semilogy x1=1::100; x2=x1;

matlab绘图和坐标操作

Matlab绘图和坐标操作 引自:https://www.360docs.net/doc/e25596613.html,/blog-360646-465373.html 1. 曲线线型、颜色和标记点类型 plot(X1,Y1,LineSpec, …) 通过字符串LineSpec指定曲线的线型、颜色及数据点的标记类型。 线型颜色 数据点标记类型 - 实线 r 红色 + 加号 -. 点化线 g 绿色 o 圆圈 -- 虚线 b 蓝色 * 星号 : 点线 c 蓝绿色 . 点 m 洋红色 x 交叉符号 y 黄色 square(或s) 方格 k 黑色 diamond(或d) 菱形 w 白色 ^ 向上的三角形 v 向下的三角形 > 向左的三角形 < 向右的三角形 pentagram(或p) 五边形 hexagram(或h) 六边形 2. 设置曲线线宽、标记点大小,标记点边框颜色和标记点填充颜色等。 plot(…,’Property Name’, Property Value, …) Property Name 意义选项 LineWidth 线宽数值,如0.5,1等,单位为points MarkerEdgeColor 标记点边框线条颜色颜色字符,如’g’,’b’等MarkerFaceColor 标记点内部区域填充颜色颜色字符 MarkerSize 标记点大小数值,单位为points 3. 坐标轴设置 范围设置: a. axis([xmin xmax ymin ymax])设置坐标轴在指定的区间 b. axis auto 将当前绘图区的坐标轴范围设置为MATLAB自动调整的区间 c. axis manual 冻结当前坐标轴范围,以后叠加绘图都在当前坐标轴范围内显示 d. axis tight 采用紧密模式设置当前坐标轴范围,即一用户数据范围为坐标轴范围 比例:

实验2matlab绘图操作

实验2 Matlab 绘图操作 实验目的: 掌握绘制二维图形的常用函数; 掌握绘制三维图形的常用函数; 掌握绘制图形的辅助操作。 实验内容: 设sin .cos x y x x ?? =+??+? ?23051,在x=0~2π区间取101点,绘制函数的曲线。 已知: y x =2 1,cos()y x =22,y y y =?312,完成下列操作: 在同一坐标系下用不同的颜色和线性绘制三条曲线; 以子图形式绘制三条曲线; 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 3. 已知:ln(x x e y x x ?+≤??=??+>??2 0102 ,在x -≤≤55区间绘制函数曲线。 4. 绘制极坐标曲线sin()a b n ρθ=+,并分析参数a 、b 、n 对曲线形状的影响。 5.在xy 平面内选择区域[][],,-?-8888 ,绘制函数z = 6. 用plot 函数绘制下面分段函数的曲线。 ,(),,x x f x x x x ?++>? ==??+-> x=(0:2*pi/100:2*pi);

>> y=+3*sin(x)/(1+x.^2))*cos(x); >> plot(x,y) 2.已知: y x =2 1,cos()y x =22,y y y =?312,完成下列操作: (1)在同一坐标系下用不同的颜色和线性绘制三条曲线; >> x= linspace(0, 2*pi, 101); >> y1=x.*x; >> y2=cos(2x); >> y3=y1.*y2; plot(x,y1,'r:',x,y2,'b',x,y3, 'ko') (2)以子图形式绘制三条曲线; >> subplot(2,2,1),plot(x,y1) subplot(2,2,2),plot(x,y2) subplot(2,2,3),plot(x,y3)

教你如何用matlab绘图(全面)

强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。 本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。 一.二维绘图 二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。 一.绘制二维曲线的基本函数 在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。 1.plot函数的基本用法 plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。plot函数的应用格式 plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。 例51 在[0 , 2pi]区间,绘制曲线 程序如下:在命令窗口中输入以下命令 >> x=0:pi/100:2*pi; >> y=2*exp(-0.5*x).*sin(2*pi*x); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。 例52 绘制曲线 这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线:

matlab绘图详解

一.二维图形(Two dimensional plotting) 1. 基本绘图函数(Basic plotting function):Plot, semilogx, semilogy, loglog, polar, plotyy (1). 单矢量绘图(single vector plotting):plot(y),矢量y的元素与y元素下标之间在线性坐标下的关系曲线。 例1:单矢量绘图 y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20]; plot(y) 可以在图形中加标注和网格, 例2:给例1 的图形加网格和标注。 y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20]; plot(y) title('简单绘图举例'); xlabel('单元下标'); ylabel('给定的矢量'); grid (2). 双矢量绘图(Double vector plotting):如x和y是同样长度的矢量, plot(x,y)命令将绘制y元素对应于x元素的xy曲线图。 例:双矢量绘图。 x=0:0.05:4*pi; y=sin(x); plot(x,y) (3). 对数坐标绘图(ploting in logarithm coordinate): x轴对数 semilogx, y轴对数semilogy, 双对数loglog, 例:绘制数组y的线性坐标图和三种对数坐标图。 y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20]; subplot(2,2,1); plot(y); subplot(2,2,2); semilogx(y) subplot(2,2,3); semilogy(y); subplot(2,2,4); loglog(y) (4)极坐标绘图( Plotting in polar coordinate): polar(theta,rho) theta—角度, rho—半径 例:建立简单的极坐标图形。 t=0:.01:2*pi; polar(t,sin(2*t).*cos(2*t)) 2. 多重曲线绘图(Multiple curve plotting) (1)一组变量绘图(A group variable plotting) plot(x,y) (a) x为矢量,y为矩阵时plot(x,y)用不同的颜色绘制y矩阵中各行或列对应于x的曲线。例1: x=0:pi/50:2*pi; y(1,: )=sin(x); y(2,:) =0.6*sin(x); y(3, :)=0.3*sin(x); plot(x,y) (b) x为矩阵,y为矢量时绘图规则与(a)的类似,只是将x中的每一行或列对应于y进行绘图。。 例 2: x(1,: )=0:pi/50:2*pi; x(2,: )=pi/4:pi/50:2*pi+pi/4; x(3,: )=pi/2:pi/50:2*pi+pi/2; y=sin(x(1,: )); plot(x,y)

实验5 Matlab绘图操作实验报告

Tutorial 5 实验报告 实验名称:Matlab 绘图操作 实验目的: 1、 掌握绘制二维图形的常用函数; 2、 掌握绘制三维图形的常用函数; 3、 掌握绘制图形的辅助操作。 实验内容: 1. 设sin .cos x y x x ?? =+ ??+?? 23051,在x=0~2π区间取101点,绘制函数的曲线。 2. 已知: y x =21,cos()y x =22,y y y =?312,完成下列操作: (1) 在同一坐标系下用不同的颜色和线性绘制三条曲线; (2) 以子图形式绘制三条曲线; (3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 3. 已知:ln(x y x x ≤=??+>??0102 ,在x -≤≤55区间绘制函数曲线。 4. 绘制极坐标曲线sin()a b n ρθ=+,并分析参数a 、b 、n 对曲线形状的影响。 5.在xy 平面内选择区域[][],,-?-8888, 绘制函数z =的三种三维曲面图。 6. 用plot 函数绘制下面分段函数的曲线。 ,(),,x x f x x x x ?+>? ==??+

8. 在同一坐标轴中绘制下列两条曲线。 (1).y x =-205 (2)sin()cos ,sin()sin x t t t y t t π=?≤≤? =?303 实验结果: 1. 2. (1)

(2)

(3)

matlab图形处理工具

1、matlab函数bwareaopen──删除小面积对象 格式:BW2 = bwareaopen(BW,P,conn) 作用:删除二值图像BW中面积小于P的对象,默认情况下使用8邻域。 算法: (1)Determine the connected components. L = bwlabeln(BW, conn); (2)Compute the area of each component. S = regionprops(L, 'Area'); (3)Remove small objects. bw2 = ismember(L, find([S.Area] >= P)); 2、matlab函数bwarea──计算对象面积 格式:total = bwarea(BW) 作用:估计二值图像中对象的面积。 注:该面积和二值图像中对象的像素数目不一定相等。 3、matlab函数imclearborder──边界对象抑制 格式:IM2 = imclearborder(IM,conn) 作用:抑制和图像边界相连的亮对象。若IM是二值图,imclearborder将删除和图像边界相连的对象。默认情况conn=8。 注:For grayscale images, imclearborder tends to reduce the overall intensity level in addition to suppressing border structures. 算法: (1)Mask image is the input image. (2)Marker image is zero everywhere except along the border, where it equals the mask image. 4、matlab函数bwboundaries──获取对象轮廓 格式:B = bwboundaries(BW,conn)(基本格式) 作用:获取二值图中对象的轮廓,和OpenCV中cvFindContours函数功能类似。B是一个P×1的cell数组,P为对象个数,每个cell是Q×2的矩阵,对应于对象轮廓像素的坐标。 5、matlab函数imregionalmin──获取极小值区域 格式:BW = imregionalmin(I,conn) 作用:寻找图像I的极小值区域(regional maxima),默认情况conn=8。 Regional minima are connected components of pixels with a constant intensity value, and whose external boundary pixels all have a higher value. 6、matlab函数bwulterode──距离变换的极大值 格式:BW2 = bwulterode(BW,method,conn)

matlab图形坐标点显示精度设置方法

[matlab笔记]绘图时dataTip的设置 2009-04-29 16:43:45| 分类: Computer | 标签: |字号大中小订阅 用matlab(我用的版本是2009)绘图后,有时候需要显示某个数据据点的信息,这时候可以用工具栏上的Data Cursor工具。如下图所示 选中数据点之后,会弹出一个Data Tip,Data Tip显示的就是当前被选中的数据点的基本信息,比如图中显示的是坐标值。现在就遇到一个问题了,如何自己定制这个Data Tip呢?特别是,我的数据有效数字太多时,默认情况下只能显示4位,如何让它显示的精度更高呢? matlab提供了解决方案,不是Option,也不是Preferences,而是脚本。我这里把matlab 的m文件称作脚本。习惯了图形界面的人可能会觉得麻烦,但是我却觉得这是最自由的解决方案。 下面以一个实例来演示操作过程: 1、绘图 x=rand(1000,1); y=rand(1000,1); plot(x,y,'*'); 这样,就在[0,1]X[0,1]这样一个矩形内绘制了1000*1000个点。绘图的时候要指定一个点的图例,不然默认情况下是不画点的,这样也就没法点选了。 2、选中Data Cursor工具,这样,鼠标放到图中间会变成一个十字,这时候点击一个数据

点会弹出一个Data Tip框。 可以看到显示只有4位有效数字。 3、右键菜单,里面有两项"Edit Text Update Function"和"Select Text Update Function"。分别表示编辑配置文件,选择配置文件(配置文件指的还是m文件)。在未编辑之前,当前图用的是默认配置文件。编辑之后,需要保存到一个位置,新保存的文件只对当前图有效。下次如果还想使用这个配置文件,就要用到"Select Text Update Function"了。 4、点选"Edit Text Update Function",出现一个m文件编辑器。内容如下: function output_txt = myfunction(obj,event_obj) % Display the position of the data cursor % obj Currently not used (empty) % event_obj Handle to event object % output_txt Data cursor text string (string or cell array of strings). pos = get(event_obj,'Position'); output_txt = {['X: ',num2str(pos(1),4)],... ['Y: ',num2str(pos(2),4)]}; % If there is a Z-coordinate in the position, display it as well if length(pos) > 2 output_txt{end+1} = ['Z: ',num2str(pos(3),4)]; end 眼尖的人应该一眼就看到了几个"4",没错,正是它们限制了显示精度,改成更大的数就行了。这几行代码的意思应该很明显了。第一行是函数原型,以%开头的是注释,pos是变量,output_txt是返回值。二维图分两行显示X,Y坐标,如果是三维,则还会显示Z坐标。 5、保存为m文件。注意保存的文件一定要带有.m后缀,不然matlab识别不了,从而Data Tip 会显示为Error in custom datatip string function。这个错误说函数返回错误,实际上就是不能识别。 6、保存完了,就算完事了。以后可以直接改那个已经保存的文件,然后绘图后,选择这个文件。再次提醒,每次绘图时使用的都是默认配置,想要特定的效果,要么重新写,要么选择指定配置文件。 7、关于这个配置文件本身,还有许多值得探讨的地方。我这个例子只能更改显示精度,实际上,它还有许多可以自由定制的地方。比如,可以显示点的序号,即第几个点。在配置文件末尾加上一句: output_txt{end+1} = ['index:', num2str(event_obj.DataIndex)];

常见的MATLAB绘图程序

常见的MATLAB绘图程序y=[3,7,9,1,5,2,8]; subplot(1,2,1),plot(y,'linewidth',2),grid x=[3,3,9;8,1,2;1,8,5;7,9,1]; subplot(1,2,2),plot(x),xlabel('x'),ylabel('y') grid on %极坐标曲线 theta=0:0.1:8*pi; polar(theta,cos(4*theta)+1/4) %对数坐标 x=0:0.1:2*pi; y=sin(x); semilogx(x,y); grid on %各种坐标系中 theta=0:0.1:6*pi; r=cos(theta/3)+1/9; subplot(2,2,1),polar(theta,r); subplot(2,2,2),plot(theta,r); subplot(2,3,4),semilogx(theta,r); subplot(2,3,5),semilogy(theta,r); subplot(2,3,6),loglog(theta,r); grid on %双y轴图形 x=0:0.01:5; y=exp(x); plotyy(x,y,x,y,'semilogy','plot'),grid grid on %复数数据 t=0:0.1:2*pi; x=sin(t); y=cos(t); z=x+i*y; plot(t,z),grid plot(z) grid on %二维图形处理 x=(0:0.1:2*pi)'; y1=2*exp(-0.5*x)*[1,-1]; y2=2*exp(-0.5*x).*sin(2*pi*x); x1=(0:12)/2; y3=2*exp(-0.5*x1).*sin(2*pi*x1);

Matlab绘图功能

第五章Matlab绘图功能 5.1 二维图形的绘制 5.1.1 常用的二维图形绘图函数 基本的二维绘图函数有 plot ——绘制2维曲线; title ——给图形加标题; grid ——显示网格线; xlabel ——给x轴加标记; ylabel ——给y轴加标记; text ——在坐标图中加入文字注释。 π的曲线图。 例:画出函数x =,其中x从0到π2步进100 yπ2 sin / X=0:pi/100:2*pi; Y=sin(X); plot(X,Y); % 作图 grid on; % 网格线显示,若该为grid off则不显示网格 ylabel('y=sin 2\pi x'); % Y轴标注,可以有汉字 xlabel('x'); % X轴标注,可以有汉字 title('function plot y=sin 2\pi x'); % 图标题 text(0.5,sin(0.5),'\leftarrow sin 2 \pi 0.5'); % text()可以在指定坐标处写文字标注 text(2.3,sin(2.3),'\leftarrow sin 2 \pi 2.3'); % 所有标注中均可使用汉字 % 对于特殊符号,如希腊字母,箭头等需要采用LaTeX格式 结果如图5.1 所示。

图5.1 基本的二维绘图函数用法 5.1.2 图形的线型和颜色控制 在命令plot的高级用法中,可以设置作图的线型,标记类型,线和标记的颜色,粗细等特征。用命令doc LineSpec和doc plot可以查询详细的帮助文档。 线型的定义如下: - solid line (default) 实线 -- dashed line 虚线 : dotted line 虚点连线 -. dash-dot line 点划线 常用标记的定义为: + plus sign 十字标记 o circle 小圈标记 * asterisk 星号标记 . point 黑点标记

Matlab绘图和坐标操作

Matlab绘图和坐标操作 a=linspace(1,2,10) plot(a,‘—pr’,‘linewidth’,1.5,‘MarkerEdgeColor’ ‘r’,‘MarkerFaceColor’,‘m’,‘MarkerSize’,10) legend(‘a’,‘Location’,‘best’) title(‘a’,‘FontName’,‘Times New Roman’,‘FontWeight’,‘Bold’,‘FontSize’,16) xlabel(‘T’,‘FontName’,‘Times New Roman’,‘FontSize’,14) ylabel(‘a’,‘FontName’,‘Times New Roman’,‘FontSize’,14,‘Rotation’,0) axis auto equal set(gca,‘FontName’,‘Times New Roman’,‘FontSize’,14) plot(X1,Y1,LineSpec, …) 通过字符串LineSpec指定曲线的线型、颜色及数 1.曲线线型、颜色和标记点类型 据点的标记类型。 - 实线r 红色+ 加号-. 点划线g 等方式对方发生法 o 圆圈-- 虚线 b 蓝色* 星号: 点线 c 蓝绿色. 点m 洋红色x 交叉符号y 黄色 square(s)方格k 黑色diamond(d) 菱形w 白色^ 上三角 v 下三角> 左三角< 右三角pentagram(p) 五边形 hexagram(h) 六边形 2.设置曲线线宽、标记点大小,标记点边框颜色和标记点填充颜色等。 plot(…,’Property Name’, Property Value, …) Property Name 意义选项 LineWidth 线宽数值,如0.5,1等,单位为points MarkerEdgeColor 标记点边框线条颜色颜色字符,如‘g’, ‘b’等MarkerFaceColor 标记点内部区域填充颜色颜色字符 MarkerSize 标记点大小数值,单位为points 3.坐标轴设置 范围设置: a. axis([xmin xmax ymin ymax])设置坐标轴在指定的区间 b. axis auto 将当前绘图区的坐标轴范围设置为MATLAB自动调整的区间 c. axis manual 冻结当前坐标轴范围,以后叠加绘图都在当前坐标轴范围内显示 d. axis tight 采用紧密模式设置当前坐标轴范围,即一用户数据范围为坐标轴范围 比例: a. axis equal 等比例坐标轴 b. axis square 以当前坐标轴范围为基础,将坐标轴区域调整为方格形 c. axis normal 自动调整纵横轴比例,使当前坐标轴范围内的图形显示达到最佳效果 范围选项和比例设置可以联合使用,默认的设置为axis auto normal 4.坐标轴刻度设置 set(gca,‘XTick’,[0 1 2]) X坐标轴刻度数据点位置 set(gca,‘XTickLabel’,{'a','b','c'}) X坐标轴刻度处显示的字符 set(gca,‘FontName’,‘Times New Roman’,‘FontSize’,14)设置坐标轴刻度字体名称,大

matlab plot画图

转)plot 画图 默认分类 2009-04-30 16:38:02 阅读116 评论0字号:大中小 第五讲计算结果的可视化 本节介绍MATLAB 的两种基本绘图功能:二维平面图形和三维立体图形。 5.1 二维平面图形 5.1.1 基本图形函数 plot 是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。也就是 说,使用plot 函数之前,必须首先定义好曲线上每一点的x 及y 坐标,常用格式为:(1)plot(x) 当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制 曲线。当x 为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的曲线, 当x 为m× n 矩阵时,就由n 条曲线。 (2)plot(x,y) 以x 元素为横坐标值,y 元素为纵坐标值绘制曲线。 (3)plot(x,y1,x,y2,…) 以公共的x 元素为横坐标值,以y1,y2,… 元素为纵坐标值绘 制多条曲线。 例5.1.1 画出一条正弦曲线和一条余弦曲线。 >> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2) 图5.1.1 函数plot 绘制的正弦曲线 在绘制曲线图形时,常常采用多种颜色或线型来区分不同的数据组,MATLAB 软件专 门提供了这方面的参数选项(见表5.1.1),我们只要在每个坐标后加上相关字符串,就可实 现它们的功能。 - 2 - 表5.1.1 绘图参数表 色彩字符颜色线型字符线型格式标记符号数据点形式标记符号数据点形式 y 黄- 实线. 点< 小于号 m 紫:点线o 圆s 正方形 c 青-. 点划线x 叉号 d 菱形 r 红- - 虚线+ 加号h 六角星 g 绿* 星号p 五角星 b 蓝v 向下三角形 w 白^ 向上三角形 k 黑> 大于号 例如,在上例中输入 >> plot(x,y1,'r+-',x,y2,'k*:')

matlab中画图的时各种设置

MATLAB 受到控制界广泛接受的一个重要原因是因为它提供了方便的绘图 功能.本章主要介绍2维图形对象的生成函数及图形控制函数的使用方法,还将简单地介绍一些图形的修饰与标注函数及操作和控制MATLAB各种图形对象的方法. 第一节图形窗口与坐标系 一.图形窗口 1.MATLAB在图形窗口中绘制或输出图形,因此图形窗口就像一张绘图纸. 2. 在MATLAB下,每一个图形窗口有唯一的一个序号h,称为该图形窗口的 句柄.MATLAB通过管理图形窗口的句柄来管理图形窗口; 3.当前窗口句柄可以由MATLAB函数gcf获得; 4.在任何时刻,只有唯一的一个窗口是当前的图形窗口(活跃窗口); figure(h)----将句柄为h的窗口设置为当前窗口; 5.打开图形窗口的方法有三种: 1)调用绘图函数时自动打开; 2)用File---New---Figure新建; 3)figure命令打开,close命令关闭. 在运行绘图程序前若已打开图形窗口,则绘图函数不再打开,而直接利用已 打开的图形窗口;若运行程序前已存在多个图形窗口,并且没有指定哪个窗 口为当前窗口时,则以最后使用过的窗口为当前窗口输出图形. 6.窗口中的图形打印:用图形窗口的File菜单中的Print项. 7.可以在图形窗口中设置图形对象的参数.具体方法是在图形窗口的Edit菜 单中选择Properties项,打开图形对象的参数设置窗口,可以设置对象的属 性. 二.坐标系 1.一个图形必须有其定位系统,即坐标系; 2.在一个图形窗口中可以有多个坐标系,但只有一个当前的坐标系; 3.每个坐标系都有唯一的标识符,即句柄值; 4.当前坐标系句柄可以由MATLAB函数gca获得; 5.使某个句柄标识的坐标系成为当前坐标系,可用如下函数:axes(h) h为指 定坐标系句柄值. 6.一些有关坐标轴的函数: 1)定义坐标范围:一般MATLAB自动定义坐标范围,如用户认为设定的不 合适,可用:axis([Xmin, Xmax, Ymin, Ymax]) 来重新设定; 29 2) 坐标轴控制:MATLAB的缺省方式是在绘图时,将所在的坐标系也画出 来,为隐去坐标系,可用axis off;axis on则显示坐标轴 (缺省值). 3)通常MATLAB的坐标系是长方形,长宽比例大约是4:3,为了得到一个 正方形的坐标系可用:axis square 4)坐标系横纵轴的比例是自动设置的,比例可能不一样,要得到相同比例 的坐标系,可用:axis equal 第二节二维图形的绘制 一. plot函数

MATLAB中的绘图程序

MATLAB中的绘图程序 2011-03-25 12:45:48| 分类:matlab | 标签:绘图 matlab |字号大中小订阅 matlab中如何在指定一点画一个填充颜色的小圆 plot(1,1,'r.','markersize',50) §4.1二维作图 绘图命令plot绘制x-y坐标图;loglog命令绘制对数坐标图;semilogx和semilogy命令绘制半对数坐标图;polar命令绘制极坐标图. §4.1.1 基本形式 如果y是一个向量,那么plot(y)绘制一个y中元素的线性图.假设我们希望画出 y=[0., 0.48, 0.84, 1., 0.91, 6.14 ] 则用命令:plot(y) 它相当于命令:plot(x, y),其中x=[1,2,…,n]或x=[1;2;…;n],即向量y的下标编号, n为向量y 的长度 Matlab会产生一个图形窗口,显示如下图形,请注意:坐标x和y 是由计算机自动绘出的. 图4.1.1.1 plot([0.,0.48,0.84,1.,0.91,6.14]) 上面的图形没有加上x轴和y轴的标注,也没有标题.用xlabel,ylabel,title命令可以加上.如果x,y是同样长度的向量,plot(x,y)命令可画出相应的x元素与y元素的x-y坐标图.例:x=0:0.05:4*pi; y=sin(x); plot(x,y) grid on, title(' y=sin( x ) 曲线图' ) xlabel(' x = 0 : 0.05 : 4Pi ') 结果见下图.

图4.1.1.2 y=sin(x)的图形 表4.1.1.1 Matlab图形命令 §4.1.2 多重线 在一个单线图上,绘制多重线有三种办法. 第一种方法是利用plot的多变量方式绘制: plot(x1,y1,x2,y2,...,xn,yn) x1,y1,x2,y2,...,xn,yn是成对的向量,每一对x, y在图上产生如上方式的单线.多变量方式绘图是允许不同长度的向量显示在同一图形上. 第二种方法也是利用plot绘制,但加上hold on/off命令的配合: plot(x1,y1) hold on plot(x2,y2) hold off 第三种方法还是利用plot绘制,但代入矩阵: 如果plot用于两个变量plot(x,y),并且x,y是矩阵,则有以下情况: (1)如果y是矩阵,x是向量,plot(x,y)用不同的画线形式绘出y的行或列及相应的x向量,y的行或列的方向与x向量元素的值选择是相同的. (2)如果x是矩阵,y是向量,则除了x向量的线族及相应的y向量外,以上的规则也适用.(3)如果x,y是同样大小的矩阵,plot(x,y)绘制x的列及y相应的列. 还有其它一些情况,请参见Matlab的帮助系统. §4.1.3 线型和颜色的控制 如果不指定划线方式和颜色,Matlab会自动为您选择点的表示方式及颜色.您也可以用不同的符号指定不同的曲线绘制方式.例如:

MATLAB的绘图功能

四MATLAB的绘图功能 视觉是人们感受世界、认识自然最重要的途径。人们很难直接从一大堆原始的离散数据中体会到它们的含义,用数据画出图形却能使人们用视觉器官直接感受到数据的许多内在本质。 MA TLAB一向注重数据的图形表示,并不断地采用新技术改进和完备其可视化功能。MA TLAB作为一个优秀的科技软件,在数据可视化方面也有上乘表现。MA TLAB可以给出数据的二维、三维乃至四维的图形表现。通过对图形线型、立面、色彩、渲染、光线、视角等的控制,可把数据的特征表现得淋漓尽致。MA TLAB提供了两个层次的图形命令:一种是对图形句柄进行的低级图形命令,另一种是建立在低级图形命令之上的高级图形命令。MA TLAB的图形功能很强,不但可以绘制一般函数的图像,而且可以绘制专业图形,如饼图、条形图等。 在本章介绍如何创建二维、三维图形及其控制输出的方法。 1.1 基本绘图函数 MA TLAB提供多个函数用于绘制图形,以向量或矩阵作为输入参数,绘制它们的图像。下面的列出了基本绘图函数。 表6-1基本绘图函数

1.2 二维图形的绘制 1.2.1 绘制二维图形的一般步骤 为了让读者对绘制图形的过程有一个宏观的了解,在这里先介绍绘制二维图形的一般步骤,具体细节将在后面的章节中进行展开。 绘制二维图形的一般步骤如下: (1)数据的准备:选定所要表现的范围 产生自变量采样向量 计算相应的函数值向量 典型指令:x=0:pi/100:2*pi; (2)选定图形窗及其子图的位置: 缺省时,打开Figure No.1,或当前窗,当前子图 可用指令指定图形窗号和子图号 典型指令:figure(1)%指定1号图形窗 subplot(2,2,2)%指定2号子团 (3)调用(高层)绘图指令:线型、色彩、数据点形 典型指令:plot(x,y,’-ro’)%用红色实线画曲线,其数据点类型为o (4)设置轴的范围与刻度、坐标分格线 典型指令:axis([0,inf,-1,1])%设置坐标轴的范围 grid on %画坐标分格线 (5)图形注释,包括:图名、坐标名、图例、文字说明等 典型指令:title(‘专家系统’)%图名 xlabel(‘’);ylabel(’y’)%轴名 legend(’sinx’,‘cosx‘)%图例 text(2,1,’y=sinx‘)%文字说明 (6)打印:图形窗上的直接打印选项或按键 利用图形后处理软件打印 采用图形窗选项或按键打印最简捷。 步骤1,3是最基本的绘图步骤。至于其他步骤,并不完全必须。 1.2.2 plot函数的调用格式 在二维曲线的绘图命令中,函数plot是最基本,最重要的二维图形命令,其它许多绘图命令都是在它的基础上形成的。 下面介绍plot的使用方法: 调用格式1plot(x,y) 功能绘制二元组x、y的曲线图形。 说明这里x为横坐标,y为纵坐标。若x、y是同规模的向量,则绘制一条曲线。 若x是向量而y是矩阵,则绘制多条曲线,它们具有相同的横坐标数据。 若x、y都是矩阵,则以它们对应的列构成二元组,绘制多条曲线。 调用格式2plot(y)

Matlab程序设计与作图

(封面) 学生实验报告 学院: 课程名称: 专业班级: 姓名: 学号:

学生实验报告 一、实验综述 1、实验目的及要求 熟悉MATLAB软件的用户环境;了解MATLAB软件的一般命令;掌握 MATLAB向量、数组、矩阵操作与运算函数;掌握MATLAB软件的基本绘图命令;掌握MATLAB语言的几种循环、条件和开关选择结构,及其编程规范。 通过该实验的学习,使学生能灵活应用MATLAB软件解决一些简单问题,能借助MATLAB软件的绘图功能,对函数的特性进行探讨,广泛联想,大胆猜想,发现进而证实其中的规律 2、实验仪器、设备或软件 电脑、matla b 二、实验过程(实验步骤、记录、数据、分析) 1.在D 盘建立一个自己的文件夹 2.开启软件平台——MATLAB,将你建立的文件夹加入到MATLAB的搜索路径中; 3.利用帮助了解函数 max, min, sum, mean, sort, length,rand, size 和diag 的功能和用法; 4.开启MATLAB编辑窗口,键入你编写的M 文件(命令文件或函数文件); 5.保存文件(注意将文件存入你自己的文件夹)并运行; 6.若出现错误,修改、运行直到输出正确结果; 7.写出实验报告,并浅谈学习心得体会。 三、结论 1、 1. 已知矩阵要求:(1)屏幕输出 A 与 B;(2)A 的转置 A′;(3)求 A+B 的值;(4)求 A-B的值;(5)求 4A;(6)求 A×B;(7)求 A-1.

实验结果>> A=[3 1 1;2 1 2;1 2 3] A = 3 1 1 2 1 2 1 2 3 >> B=[1 1 1;2 1 0;1 0 1] B = 1 1 1 2 1 0 1 0 1 >> A' ans = 3 2 1 1 1 2 1 2 3 >> A+B ans = 4 2 2 4 2 2 2 2 4 >> A-B ans = 2 0 0 0 0 2 0 2 2 >> 4*A ans = 12 4 4

第二讲 Matlab编程与作图

第二讲Matlab编程与作图 第一部分Matlab程序设计初步 Matlab除了指令行操作的直接交互外,作为一种高级应用软件还提供了自己的编程语言。通过编写Matlab程序,可以更加方便地调用Matlab提供的各种功能强大的函数库,使得程序能完成复杂的运算处理大量的数值数据。 1、M文件简介 Matlab提供了丰富的编程语言,使得用户可以将一连串的命令写入文件,然后使用简单的函数来执行这些命令。文件被保存为文本文件,后缀为.m,比如说dblquad.m,因此Matlab的程序通常被称为M 文件。 M文件是一个文本文件,可以使用各种文本编辑器对它进行编辑和修改,比如Windows操作系统自带的记事本,也可以用Matlab 内建的M文件编辑器。 M文件分为两类,一类称为脚本(Scripts),类似于批处理文件,相当于将在Matlab命令窗口中执行的一系列指令放在一个文件中,当在命令窗口调用该文件名时,则按顺序执行其中的命令集。 例:编写求10!的程序。 另一类M文件称为函数(Function),它可以接受输入变量,并将运算结果送至输出变量,类似于数学中的函数y=f(x)。 函数M文件的基本结构: function f=fact(n) 函数定义行

%Compute a factorial value. %FACT(N) returns the factorial of N, 帮助文档%usually denoted by N! %Put simply,FACT(N) is PROD(1:N), 注释 f=prod(1:n); 函数体2、运算符 关系运算符:<, <=, >, >=, = =, ~= 逻辑运算符:与(&),或(|),非(~) 例:编写分段函数 21 () 1 -1<1 321 x x f x x x x ?> ? =≤ ? ?+≤- ? %myfun1.m function y=myfun1(x) y=(x.^2).*(x>1)+(x>-1& x<=1)+(3+2*x).*(x<=-1); 注意:1.函数名与变量名的命名法则相同,要求以字母开头,后接字母或下划线;2.函数名与保存的文件名最好一致。 3、控制流 所有的计算机编程语言都提供了控制程序流执行程序的语法,Matlab也不例外。所有的控制流语法都以end 结尾。 ⑴for 循环语句 语法:for 循环变量=数组 指令组;

相关文档
最新文档