当前位置:文档之家› 第一、二章 MATLAB 入门

第一、二章 MATLAB 入门

第一、二章 MATLAB 入门
第一、二章 MATLAB 入门

第一章 MATLAB 入门

Chapter one: Introduction to MATLAB

Matlab(Matrix Laboratory)是美国 MathWorks公司开发的一套高性能的数值分析和计算软件,用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境,是目前最好的科学计算类软件之一。

MATLAB将矩阵运算、数值分析、图形处理、编程技术结合在一起,为用户提供了一个强有力的科学及工程问题的分析计算和程序设计工具,它还提供了专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能,是具有全部语言功能和特征的新一代软件开发平台。

MATLAB 已发展成为适合众多学科,多种工作平台、功能强大的大型软件。在欧美等国家的高校,MATLAB已成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具。成为攻读学位的本科、硕士、博士生必须掌握的基本技能。在设计研究单位和工业开发部门,MATLAB被广泛的应用于研究和解决各种具体问题。在中国,MATLAB也已日益受到重视,短时间内就将盛行起来,因为无论哪个学科或工程领域都可以从MATLAB中找到合适的功能。MATLAB 简史

1983年美国Mathworks公司首次推出MATLAB (Matrix Laboratory),之后其功能不断扩充,版本不断升级,1993年推出4.0版,95年4.2版,97年5.0版,99年5.3版,5.X版无论是界面还是内容都有长足的进展,其帮助信息采用超文本格式和PDF格式,可以方便的浏览。至2001年6月推出6.1版,2002年6月推出6.5版,继而推出6.5.1版、7.0版、7.1版、7.3(MATLAB 2006b)版,最新版本为7.4(R2007a)版。

从现在开始,MathWorks公司将每年进行两次产品发布,时间分别在每年的3月和9月,而且,每一次发布都会包含所有的产品模块,如产品的new feature、bug fixes和新产品模块的推出。

在R2006a中(MATLAB 7.2,Simulink 6.4),主要更新了10个产品模块、增加了多达350个新特性、增加了对64位Windows的支持,并新推出了.net工具箱。

The MathWorks於07年3月1日宣布MATLAB及Simulink产品家族最新更新版本R2007a正式上市。此次改版為The MathWorks 自2006年起实施每年兩次产品更新的标准时程。R2007a改版新增兩个新产品、82个产品改版更新及bug fix等等。除此之外,R2007a可支援安裝英特尔(Intel)处理器的Mac平台、Windows Vista,和64位元Sun Solaris SPARC等作业系統。

一.MATLAB的重要功能和主要组成部分

一)功能:目前MATLAB 产品族的主要功能为:

-数值分析

-数值和符号计算

-工程与科学绘图

-控制系统的设计与仿真

-数字图像处理

-数字信号处理

-通讯系统设计与仿真

-财务与金融工程...

MATLAB具有用法简易、可灵活运用、程序结构强又兼具延展性的优点,

以下为其主要特色:

?功能强的数值运算:在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函数可使用,函数的标示自然,使得问题和解答像数学式子一般简单明了,让使用者可全力发挥在解题方面,而非浪费在电脑操作上。

?先进的资料视觉化功能: MATLAB的物件导向图形架构让使用者可执行视觉数据分析,并制作高品质的图形,完成科学性或工程性图文并茂的文章。

?高阶但简单的程序环境:做为一种直译式的程序语言,MATLAB让使用者在短时间内写完程序,所花的时间约为用 FORTRAN 或 C 的几分之一,而且不需要编译(compile)及联结 (link) 即能执行,同时包含了更多及更容易使用的内建功能。

?开放及可延伸的架构: MATLAB容许使用者接触它大多数的数学原始码,监视运算法,更改现存函数,甚至加入自己的函数使 MATLAB成为使用者所须要的环境。

丰富的程序工具箱:MATLAB的程序工具箱将套装前软件的优点,与一个灵活的开放但容易操作的环境融合。这些工具箱提供了使用者在特别应用领域所需之许多函数。现有工具箱有:符号运算(利用Maple V的计算核心执行)、影像处理、统计分析、讯号处理、神经网路、模拟分析、控制系统、即时控制、系统确认、强建控制、弧线分析、最佳化、模糊逻辑、mu分析及合成、化学计量分析等。

1.MATLAB6.1 的新功能

(1)全新的开发环境GUIDE(GUI Development Environment):由早期的单一命令窗口发展为将一些常用的交互式工作界面高度的集中于操作桌面;

(2)在命令窗口增加了错误跟踪功能(error display message and abort function);

(3)提供了许多新的数值处理功能(numerical Treatment Techniques),更新了部分函数的功能和算法,增加了许多新函数;(4)在图形窗口增加了曲线拟合、数据统计等交互工具;(Curve Fitting, Data Analyzing )

(5)引入了类与对象及函数句柄等概念;(Object,Handle) 用户可以创建自己定义的类函数和函数句柄;

(6)改进了编辑/调试器的界面及功能; (Editor/Debugger)增加了行号和书签等功能;

(7)属性编辑器功能更强(Property Debugger),使用更方便;

(8)建立了一个与以前完全不同的图形用户界面(GUI)图形窗口,(Graphical Window)使用更加方便灵活;

(9)增加了虚拟现实工具箱,(Virtual Reality Toolbox)使用标准的虚拟现实建模语言(VRML)技术,可以创建由MATLAB和simulink 环境驱动的三维动画场景;

(10)在应用程序接口方面增加了与Java的接口(Interface for Java),并为二者的数据交换提供了相应的程序库。

MATLAB 7的升级内容:MATLAB 7针对编程环境,代码效率、数据可视化、数学计算、文件I/O等方面进行了升级,包括:

*开发环境

1、重新设计了桌面环境,针对多文档界面应用提供了简便的管理和访问方法,允许用户自定义桌面外观,创建常用命令的快捷方式;

2、增强数组编辑器(Array Editor)和工作空间浏览器(Workspace Browser)功能,用于数据的显示、编辑和处理;

3、在当前目录浏览器(Current Directory Browser)工具中,增加代码效率分析、覆盖度分析等功能。;

4、M-Lint编码分析,辅助用户完成程序性能分析,提高程序执行效率;5,增强M文件编辑器(M Editor), 支持多种格式源代码文件可视化编辑,例如C/C++, HTML,Java 等。

* 编程

1、支持创建嵌套函数(Nested Function),提供更灵活的代码模块化转化;

2、匿名函数(Anonymous Function)功能,支持在命令行或者脚本文件中创建单行函数(Single Line Function);

3、支持条件分支断点,可以在条件分支语句中进行程序中断调试;

4、模块化注释,支持为代码段注释。

* 数学

1、支持整数算术运算;

2、支持单精度数据类型运算,包括基本算术运算、线性代数、FFT等;

3、使用更强大的计算算法包Qhull 2002.1,提供更丰富的算法支持;

4、Linsolve函数用于处理线性代数方程求解;

5、ODE求解器能够处理隐性微分方程组以及多点边界问题;

* 图形和3D可视化

1、新图形窗口界面;

2、直接从图形窗体生成M代码,可以完成用户自定义绘图;

3、增强图形窗体注释;

4、数据侦测工具(Data Exploration Tools),提供丰富的数据观测手段;

5、自定义图形对象,提供丰富的图形显示功能;

6、GUIDE新增对用户界面和ActiveX控件支持;

7、增强句柄图形对象支持完整地TeX和LaTeX字符集;

* 文件I/O和外部接口

1、新增文件I/O函数,支持读取任意格式文本数据文件,并且支持写

入Excel和HDF5格式数据文件;

2、具有压缩功能的MAT文件格式,支持快速数据文件I/O能力;

3、javaaddpath函数,无需重新启动MATLAB就可完成Java类的加载、

删除等功能;

4、支持COM、服务器事件以及VBS;

5、支持SOAP,使用网络服务;

6、FTP对象,直接访问FTP服务器;

7、支持Unicode编码格式,增强MAT文件字符集;

* 性能与系统平台支持

1、JIT加速器支持所有数值数据类型;

2、Windows XP系统下支持3GB内存访问。

R2007a的改版內容

* 在MATLAB产品家族部分的重点:

1.可於多核心和多个处理器的系統上,利用MATLAB数学函式,处理多执行绪(Multithreaded)运算;

2.新版分散式运算工具箱(DCT)具备4个运算引擎,可在同一台电脑上执行平行运算;

3.統計工具箱(Statistics Toolbox)具备新的类別資料和資料阵列;

4.定点工具箱(Fixed-Point Toolbox)可加快C语言的编译速度;

5.利用控制系統工具箱(Control System Toolbox)对延滯的控制迴路精准建模及分析;

6.可利用系統辨识工具箱(System Identification Toolbox)产生非线性模型;

7.基因演算法及直接法搜尋工具箱(Genetic Algorithm and Direct Search Toolbox)提供模拟退火法(Simulated annealing)。

* 在Simulink产品家族部分新增的功能:

1.可支援多面向讯号,如讯号处理模块組(Signal Processing

Blockset)、嵌入式MATLAB函数模块(Embedded MATLAB Function block) 、动态影片及影像处理模块組(Video and Image Processing Blockset),以及C程序码产生器(Real-Time Workshop)等;

2.嵌入式C程序码产生器(Real-Time Workshop Embedded Coder)程序

码产生的效能改善;

3.Simulink定点模块組(Simulink Fixed Point)新增新的图形化介面,

用於定点数系統的分析和縮放(Scaling);

4.事件模拟模块組(SimEvents)可支援向量(Vector)及距阵(Matrix);

5.新产品Simscape物理模型模拟模块組可支援复域的物理模型模拟

(Multidomain Physical Modeling)。

*Mathworks Matlab R2007a: What's New in Release 2007a

R2007a, released on March 1, 2007, includes updates to MATLAB and Simulink, two new products released since R2006b, and updates and bug fixes to 82 other products. R2007a adds support for the Intel? based Mac, Windows Vista?, and 64-bit Sun Solaris? SPARC platforms. Subscribers to MathWorks Software Maintenance Service can download R2007a product updates.

New capabilities for the MATLAB product family include:

* Multithreaded computation in key MATLAB math functions for multicore and multiprocessor systems

* Ability to run parallel algorithms in four MATLAB sessions on your desktop with Distributed Computing Toolbox

* New categorical and dataset arrays in Statistics Toolbox

* Fixed-Point Toolbox acceleration at the speed of compiled C

* Exact modeling and analysis of control loops with delays in Control System Toolbox

* Generation of nonlinear models with System Identification Toolbox

* Simulated annealing in Genetic Algorithm and Direct Search Toolbox

New capabilities for the Simulink product family include:

* Multidimensional signal support for Simulink, Signal Processing Blockset, Embedded MATLAB Function block, Video and Image Processing Blockset, and Real-Time Workshop

* Improved code efficiency and MISRA C support in Real-Time Workshop Embedded Coder

* New graphical interface for analyzing and scaling fixed-point systems in Simulink Fixed Point

* Vector and matrix support in SimEvents

* Simscape, a new product for multidomain physical modeling

二)MATLAB的主要组成部分:MATLAB系统由5个主要的部分构成:

(1)开发环境(development Environment):为MATLAB用户或程序编制员提供的一套应用工具和设施。由一组图形化用户接口工具和组件集成:包括MATLAB桌面、命令窗口、命令历史窗口、编辑调试窗口及帮助信息、工作空间、文件和搜索路径等浏览器;

(2)M ATLAB数学函数库(Math Function Library):数学和分析功能在MATLAB工具箱中被组织成8个文件夹。

elmat 初步矩阵,和矩阵操作。

elfun 初步的数学函数。求和、正弦、余弦和复数运算等

specfun 特殊的数学函数。矩阵求逆、矩阵特征值、贝塞尔函数等;

matfun 矩阵函数-用数字表示的线性代数。

atafun 数据分析和傅立叶变换。

polyfun 插值,多项式。

funfun 功能函数。

sparfun 稀疏矩阵。

(3)M ATLAB 语言:(MATLAB Language)一种高级编程语言(高阶的矩阵/数组语言),包括控制流的描述、函数、数据结构、输入输出及面

对对象编程;

(4)句柄图形:(Handle Graphics) MATLAB制图系统具有2维、三维的数据可视化,图象处理,动画片制作和表示图形功能。可以对各种图

形对象进行更为细腻的修饰和控制。允许你建造完整的图形用户界面

(GUI),以及建立完整的图形界面的应用程序。制图法功能在

MATLAB工具箱中被组织成5个文件夹:

graph2d 二维数图表。

graph3d 三维图表。

specgraph 专业化图表。

graphics 制图法。

uitools 图形用户界面工具。

(5)应用程序接口:(Applied Function Interface) MATLAB的应用程序接口允许用户使用C或FORTRAN语言编写程序与

MATLAB连接。

MATLAB工具箱(Toolbox);(表1—2)

二.MATLAB 的安装:与一般光盘软件的安装相同,略

三.MATLAB 的系统开发环境(System Developing Environment)

1.操作桌面(Operating Desktop)

(1)桌面布局:6个窗口(图示、操作演示)

*命令窗口(Commend Window)

*工作空间窗口(Workspace)

*当前目录浏览器(Current Directory )

*命令历史窗口(Commend History )

*启动平台(Launch Pad)6.x版

*帮助窗口(Help)

*M文件优化器(Profiler)

窗口的切换、放大与关闭。(switching, Amplification, tun-off)

View菜单中的desktop layout菜单中提供的6种可选布局:

*Default

*Command Window

*Simple

*Short History

*Tall History

*Five Panel

(2).菜单和工具栏;(Menu and toolbar)操作桌面上有6个菜单(表1—3)和带有9个快捷按钮的工具栏组,(图示、操作演示)

(3).改变桌面设置:(Setting) File 菜单中Preference对话框中设置(图示、操作演示)

2. 命令窗口:(Command window)MATLAB的主要交互窗口。用于输入

MATLAB 命令、函数、数组、表达式等信息,并显示图形以外的所有计算结果。

例如从键盘输入矩阵

A=[1 2 3; 4 5 6; 7 8 9]按Enter 键后屏幕立即显示结果

A=

1 2 3

4 5 6

7 8 9

命令窗口可作为一个多功能高级计算器,如要计算18+(5sinπ/6)/2+cosπ/6 只须按MATLAB格式要求键入;

18+5*sin(pi/6)/(2+cos(pi/6)),然后按Enter键既可在窗口内显示出计算结果:

ans=

18.8723

公式中的数据可任意改动并重新计算。(例)

还可在命令窗口输入最后一次输入命令的开头字符或字符串,然后用↑键调出该命令行。

MATLAB是标准的Windows界面,可利用菜单中的命令完成对工作窗口的操作。其命令行功能键和快捷键与Windows 的一般应用程序相似,(表1—4)(自学)

3.工作空间窗口:(Workspace Window)

用于储存各种变量和结果的空间,显示变量的名称、大小、字节数及数据类型,对变量进行观察、编辑、保存和删除。(图示、操作演示)。临时变量不占空间,

为了对变量的内容进行观察、编辑与修改,可以用三种方法打开内存数组编辑器。*双击变量名;*选择该窗口工具栏上的打开图标;*鼠标指向变量名,点击鼠标右键,弹出选择菜单,然后选项操作。(示例)欲查看工作空间的情况,可以在命令窗口键入命令whos(显示存在工作空间全部变量的名称、大小、数据类型等信息)或命令who(只显示变量名)

4.当前目录浏览器:(Current Directory)

用于显示及设置当前工作目录,同时显示当前工作目录下的文件名、文件类型及目录的修改时间等信息。只有在当前目录或搜索路径下的文件及函数可以被运行或调用。(图示、操作演示)

设置当前目录可以在浏览器窗口左上角的输入栏中直接输入,或点击浏览器下拉按钮进行选择。还可用cd命令在命令窗口设置当前目录,如:cd c:\mydir可将c盘上的mydir目录设为当前工作目录。

(5).命令历史窗口:(Command History)

记录已运行过的MATLAB命令历史,包括已运行过的命令、函数、表达式等信息,可进行命令历史的查找、检查等工作,也可以在该窗口中进行命令复制与重运行。(图示、操作演示)

6.启动平台:(Launch Pad)

帮助用户方便地打开和调用MATLAB 的各种程序、函数和帮助文件。

平台列出了系统中安装的所有的MATLAB产品的目录,可以通过双击来启动相应的选项。7.0版取消了这个窗口,事实上Help工具完全具备它的功能。(图示、操作演示)

7.MATLAB 的搜索路径:(Searching Path)

MATLAB定义的一系列文件路径的组合,缺省状态下包括当前路径和已安装的全部工具箱的路径。(图示、操作演示)

当在命令窗口输入一个字符串时,MATLAB按下列顺序开始搜索:(1)在工作空间中搜索是否有以该字符串为变量名的变量,有则返回该变量的值;

(2)搜索是否有同名的MATLAB内部函数,如果有,执行该内部函数;

(3)在当前目录中查找与该字符串同名的M文件,如果有,执行该文件;

(4)在搜索目录中查找与该字符串同名的M文件,如果有,执行该文件;

如果在搜索目录中存在多个同名函数,则只执行搜索路径中的第一个函数,其他函数不再执行。

搜索目录的设置通过选择主菜单Set Path菜单项进行。

用Add Folder…按钮可以将某一目录加入搜索路径,选择Add with Subfolder…按钮可将选中目录的子目录也包括在搜索路径中。

8.内存数组编辑器:(Array Editor)

提供对数值型或字符型二维数组的显示和编辑功能,对其他数据类型都不能编辑。通过工作空间窗口打开所选的变量时,该编辑器启动。(图示、操作演示)

9.帮助浏览器:(Help Browser)

(1)帮助浏览器:提供方便快捷的帮助信息获取途径和图文并茂的帮助内容,MATLAB7.0是通过勾选Desktop菜单中的Help选项打开一个独立的交互式帮助浏览器。

(2)help 命令:在命令窗口输入help命令,也是MATLAB寻找在线帮助的一种方便而快捷的方式。(图示、操作演示)

例1. help (列出主要的帮助主题)

HELP topics:

matlab\general - General purpose commands.

matlab\ops - Operators and special characters.

matlab\lang - Programming language constructs.

matlab\elmat - Elementary matrices and matrix manipulation. matlab\elfun - Elementary math functions.

matlab\specfun - Specialized math functions.

matlab\matfun - Matrix functions - numerical linear algebra.

matlab\datafun - Data analysis and Fourier transforms.

matlab\audio - Audio support.

matlab\polyfun - Interpolation and polynomials.

matlab\funfun - Function functions and ODE solvers.

matlab\sparfun - Sparse matrices.

matlab\graph2d - Two dimensional graphs.

matlab\graph3d - Three dimensional graphs.

matlab\specgraph - Specialized graphs….

例2. help exp (列出指定主题下的函数说明)

EXP Exponential.

EXP(X) is the exponential of the elements of X, e to the X.

For complex Z=X+i*Y, EXP(Z) = EXP(X)*(COS(Y)+i*SIN(Y)).

See also LOG, LOG10, EXPM, EXPINT.

Overloaded methods

help sym/exp.m

help fints/exp.m

help demtseries/exp.m

(3)lookfor 命令:(lookfor commend)可以根据用户提供的完整或不完整的关键词,搜索出一组与之相关的命令或函数。(图示、操作演示)例:lookfor integral

ELLIPKE Complete elliptic integral.

EXPINT Exponential integral function.

DBLQUAD Numerically evaluate double integral.

QUAD Numerically evaluate integral, adaptive Simpson quadrature. QUAD8 Numerically evaluate integral, higher order method.

QUADL Numerically evaluate integral, adaptive Lobatto quadrature. COSINT Cosine integral function.

SININT Sine integral function.

ASSEMA Assembles area integral contributions in a PDE problem.

COSINT Cosine integral function.

FOURIER Fourier integral transform.

IFOURIER Inverse Fourier integral transform.

SININT Sine integral function.

BLKPIDCON The output of the block is the sum of proportional, integral and

(4)模糊查询:(fuzzy Inquiry) 用户只须输入命令的前几个字母,然后键入Tab键MATLAB 就会列出所有以这个字母开始的命令。(图示、操作演示)

例: 在命令窗口键入plot 然后按Tab键,可得各种以为字头的命令:

plot plotbr plotes plotmap plotperf plottr plot3 plotchar plotfa plotmatrix plotpv plotv plot3m ploteach plotfis plotmf plotscale plotvec plotall plotedit plotfrsp plotnic plotsm plotyy plotbintree plotep plotlr plotnyq plotsom

plotbode ploterr plotm plotpc plotstep

四.MATLAB的基本操作

1.简单矩阵的建立(matrix setting)

Matrix:A kind of special type of data structure, most function and operation of MATLAB were based on it. It is a set of numbers arranged using a rectangular grid of rows and columns.

*Scalar:It is just a single number and it can be considered as a special matrix with one row and one column.

*Vector:It is a series of numbers arranged in a row or a column; Also we can refer to the vector as a special matrix with one row or one column. It may be called a row vector or a column vector.

MATLAB以矩阵为基本运算对象,标量可看作1×1的矩阵,矢量看作n×1或1×n的矩阵。

输入方式:(Input Mode)

(1)以直接列出元素的形式输入:(simply initializing matrices by the method to explicitly lists the values )把矩阵元素直接排列到方括号[ ]中,每行内的元素用逗号或空格分开,行与行之间用分号隔开。

例:a=[1 2 3;2 4 6;8 3 5] 或a=[1, 2, 3;2, 4 ,6;8, 3 ,5]

大矩阵可分行输入:

a=[1 2 3

2 4 6

8 3 5]

(2). 通过语句和函数产生:(Creating a new matrix from a existing matrix throw MATLAB language or functions) 对于已经存在的矩阵,可用函数

或表达式产生新的矩阵。例如:矩阵a和x已存在,利用y=sin(x)和c=a+0.1*(1+a/2)命令将产生新矩阵y和c。

利用内部语句和函数可以快速产生一些特别有用的工具矩阵,如全0 阵,全1阵,单位阵,随机阵等。

(3).在m文件中创建矩阵:(Creating a matrix within the M file)通过建立MATLAB的M文件可完成矩阵的输入,如建立B.m的文件,内容为:B=[3 4 2;1 3 5;6 4 3]

或B=[3 4 2

1 3 5

6 4 3]

则在命令窗口中使用B命令语句可以调用B矩阵。

(4)从外部的数据文件中装入:(Read the Matrix from external data file)利用load或fread命令可以读取MATLAB早期版本产生的矩阵,也可读取有其他应用程序产生的数据(或矩阵)。

2.矩阵元素(Element of matrix: Any kind of expression can be used as a matrix element)

可以用任何形式的表达式来充当矩阵元素,如:

x=[-1.3 sqrt(3) (1+2+3)*4/5]

将得到矩阵:

x=

-1.3000 1.7321 4.8000

可以定义或修改矩阵中某一元素,如操作:x(5)=abs(x(1)) 得一个新矩阵x=

-1.3000 1.7321 4.8000 0 1.3000

可以用小矩阵构成大矩阵, 如:

a=[1 2 3;4 5 6;7 8 9];

c=[a;[10,11,12]]结果为:

c=

1 2 3

4 5 6

7 8 9

10 11 12

或r=[ 10 11 12 ];

c=[ a;r ]

可得同样矩阵c=

1 2 3

4 5 6

7 8 9

10 11 12

可使用”:”(colon) 从大矩阵中抽取小矩阵, (withdraw a small matrix from a big matrix)如:

d=c(1:3,:) 意为抽取一到三行的各列, 结果为:

d=

1 2 3

4 5 6

7 8 9

e=c(:,1:2)意为抽取一到二列的各行, 结果为:

1 2

4 5

7 8

1011

3.语句与变量(Statement and variable)

MATLAB 语句的常用格式: 变量=表达式(;)(variable=expression(;)) 或简化为: 表达式(;)

表达式可以由运算符(Operator)、特殊字符(special character)、函数名(function name)、变量名(variable name)等组成,表达式的结果为一矩阵,它赋给左边的变量。如省略变量名和“=”,则自动产生一个名为ans的变量,如:

1900/81结果为:

ans=

23.4568 4568

并显示在屏幕上,如语句以分号结束,则结果不显示,如:p=a*a;

只完成运算,但不显示结果。

表达式较长时可利用续行符“. . .”, 如:

s=1-1/2+1/3-1/4+1/5-1/6+1/7-. . .

1/8+1/9-1/10+1/11-1/12;

计算结果为: 0.6532

注:续行号前不应是数字,数字后应为运算符、空格或加一个点号。4.复数和复数矩阵(Complex and complex matrix)

复数用特殊字符i或j表示。i=sqrt(-1), 其值在工作空间显示为0+1.0000i.

例:输入z=3+4i 或z=3+4j 结果一样。MATLAB 中复数有下面的语句生成办法:

z=a+b*i 或z=r*exp(i*θ)其中r为复数的模,θ为复数辐角的弧度数。

复数的两种输入方法:

(1)a=[1 2;3 4]+i*[5 6;7 8]

(2)a=[1+5i 2+6i; 3+7i 4+8i]

结果相同: a =

1.0000 + 5.0000i

2.0000 + 6.0000i

3.0000 + 7.0000i

4.0000 + 8.0000i

注:(1) 当复数的虚部(image)为一个确定的数(而不是变量或矩阵)时,可省略“*”,如1+2*i可写成1+2i, 但a+b*i不能写成a+bi, [1 2]+[3 4]*i不能写成[1 2] + [3 4]i

(2) 当复数作为矩阵元素时,复数内不能留有空格,如 1 +5i,

MATLAB中任何矩阵的元素内部都不能留有空格,否则会被当作两个元素处理而出错。

(3)如在程序设计中i 、j 被定义为其他变量则应定义另一新的复数单位。如i1。

5. 永久变量:(permanent variable)系统本身在启动时定义的变量,驻留在

工作空间中,它们是:

ans: (stores expression value)系统默认的变量名

eps:(represents floating-point precision)容差变量,定义为0到最近浮点数的距离。在PC机上等于2-52,即精确到2.22×10-16;

pi :(represents the value π)圆周率的近似值3.141565358979

Inf或inf: (represents the value ∞)正无穷大,定义为(1/0)

NaN:(represents the value Not-a-Number)非数(Not a number), Inf/Inf 或0/0运算产生,表示不定值。

i, j:虚数单位,定义i=-11/2 , j=-11/2

6.数和算术表达式(Number and arithmetic expression)

MATLAB采用10进制惯例,表示10 的幂次用符号e或E:

3 -99 0.001 9.456 1.3e-3 4.5E21

数值的相对精度是eps,即大约保持16位有效数字。

MATLAB的算数运算符号(Arithmetic Operator):

+ 加addition , - 减subtraction , * 乘multiplication ,

\ 左除left division , / 右除right division, ^ 幂exponentiation 对于标量,两种除法运算的结果相同,对于矩阵两种除法表示两种不同的除数矩阵和被除数矩阵的关系。

7.数据的显示格式(The display format of number)

MATLAB的数据显示格式由format命令来控制,他只影响结果在屏幕上的显示,不影响其计算与存储。MATLAB总是以双精度执行所有的运算。数据的显示格式(表1—6)

对于长短格式,如果矩阵的最大元素比1000大或比0.001小,则输出时将自动加入比例因子,如:

x=[12345 0.0009]

x =

1.0e+004 *

1.2345 0.0000

即x=104*[1.2345 0.0000],104为比例因子

MATLAB操作桌面的file菜单中打开preferences窗口,选择命令窗口界面,就可以方便地进行格式选择。

第二章MATLAB 的基本数学功能

Chapter two: fundamental Math function of MATLAB

.

一.算术运算(Arithmetic Computation)

MATLAB 提供的两种运算方式:

(1)普通的数组运算方式:(Array computation)在数组中对应元素之间进行运算;

(2)矩阵运算方式:(matrix computations) 将标量当作1×1阶矩阵,一维数组当作一行或一列的矢量(即1×n阶或n×1阶的矩阵),

二维数组当作m×n阶矩阵,然后按照矩阵的运算规则进行运算。

*二者输入形式和书写方法相同,差别仅在于使用不同的运算符号,

执行不同的计算过程,数组的运算是对应元素之间的运算,而矩阵运算是根据矩阵的运算规则进行。

1.加、减运算(addition and subtraction)

矩阵与数组的加减运算没有区别,运算符均为“+”、“-”,运算方法相同,但两个运算对象必须是同阶矩阵,否则将给出错误信息。

如下例:

a=[1 2 3;4 5 6;7 8 9];

b=[1 3 5];

a+b

运行结果给出错误信息:

??? Error using ==>±

Matrix dimensions must agree.

但标量,即1×1阶矩阵可以和其他不同维数的矩阵进行加减运算,如:a+5

ans =

6 7 8

9 10 11

12 12 14

2.乘除运算(Multiplication and division)

矩阵在进行乘除运算时与通常的运算符号相同(*, /, \ ),而数组在进行乘除运算时要在通常的符号前加“.”,如:“.*” 和“./ ” (或

“.\”)

(1)矩阵乘法:(Matrix multiplication)

条件:两矩阵中前一矩阵的列数与后一矩阵的行数相同,如

x=[1 2 ; 3 4];

y=[5 6 ; 7 8];

x*y

ans =

1922

4350

也可以实现两个相同维数矢量的内积(点乘,dot product),如:

a=[-1 0 2 ]‘% (输入行矢量转置为列矢量,等同于a=[-1;0;2])

b=[-2 -1 1]‘

a‘*b

b‘*a

a = -1

2

b =

-2

-1

1

ans = 4

ans = 4

MATLAB计算点乘(dot product)和叉乘(cross product)有专门的命令,用dot(a,b)计算矢量a和b的点乘,用cross(a,b)计算叉乘。

矩阵可以和标量相乘,标量可以是乘数也可以是被乘数,都是将矩阵中的每一个元素与标量相乘。如:

x=[-1 0 2];

pi*x

ans =

-3.1416 0 6.2832

(2) 数组的乘法(Array multiplication)

条件:a,b两数组必须有相同的维数,则a.*b表示a和b中对应元

素之间相乘,即z(i,j)=x(i,j)*y(i,j).如:

x=[1 2 3];

y=[4 5 6];

z=x.*y

z =

4 10 18

第一章 基本MATLAB基本命令

MATLAB学习指南 第1章.基本MATLAB指令 1.1.基本数量运算 首先,我们来谈一谈怎样向程序中添加注释(例如此行)。注释就是我们向程序中添加的文字,用来解释我们在做什么。所以,如果我们或其他人以后读到此代码,就能很容易地理解代码在执行什么指令。在一个MATLAB文件中,如果百分号%出现在一行文字中,百分号后面的所有文字都是注释,而不是MATLAB想要进行解释的指令。首先,我们向屏幕输入信息,告诉计算机我们开始运行1.1节。 指令disp('字符串')在屏幕上展示了文本字符串。 接下来,我们令一个变量等于1。 如果x没有被声明,这一指令先为变量x在内存中分配一个空间,然后又将x的值1存储在所分配的空间中。同时,这一指令会将"x = 1"显示在屏幕上。通常,我们不希望像这样的输出结果把屏幕弄得杂乱,所以我们在指令的最后加上一个分号就可以使指令变得“不可见”。例如,我们使用下列指令把x的值“不可见地”变为2,然后将结果显示在屏幕上。x=2;x的值发生了改变,但是却没有显示在屏幕上 disp('我们已经改变了x的值'); 然后,通过输入“x”,不带分号,我们显示x的值。 现在,我们来看如何声明其它变量。 y=2*x; 对y的值进行初始化,使其等于x的值的2倍。 x=x+1;使x的值增加1。 z=2*x; 声明了另一变量z。 因为在声明变量z时x的值已经发生了变化,所以z不等于y。 接下来,我们想看存储在内存中的变量的列表。我们使用指令“who”来实现。 通过使用“whos”我们能得到更多的信息 我们也可使用这些指令来得到有关仅有的某些变量的信息。

我们想要去掉变量“差”。 使用指令“clear”来实现。 接下来,我们想要去掉变量x和y。 我们再次使用指令“clear”。 一般来说,好的程序设计模式都要求每行只编写一个指令;但是,MATLAB却允许将多个指令放在一行。 更普遍的情况是,由于语句结构的长度使得我们希望一个指令能够分成多行。这可通过使用3个点来实现。 最后,当使用指令“clear all”时,我们可一次去掉所有变量。 1.2.基本向量运算 声明一个变量最简单的,但不值得推荐的方法就是逐一输入其分量。 x显示x的值 一般来说,最好一下子声明一个变量,因为这样的话MATLAB从一开始就知道它需要分配多少内存。对于大型向量,这会更加有效。 y=[1 4 6] 与上述代码作用相同。 注意到这次声明了一个行向量。为得到一个列向量,我们或者使用转置(复合x的伴随矩阵)算符xT=x’;把实行向量x进行转置,或从一开始就将其变成列向量。 为了看到行向量和列向量在大小上的不同,使用指令“size”便可返回向量或矩阵的大小。

最新MATLAB应用基础第一章matlab基础

M A T L A B应用基础第一章m a t l a b基础

MATLAB应用 赵国瑞 天津大学电子信息工程学院计算机基础教学部 2000.3 制作

概述 MATLAB是世界流行的优秀科技应用软件之一。具有功能强大(数值计算、符号计算、图形生成、文本处理及多种专业工具箱)、界面友好,可二次开发等特点。 自1984年由美国MathWorks公司推向市场以来,先后发布了多个版本,1993年发布4.0版,1996年发布5.0版,1999年发布5.3版。目前发布的为6.5版。 MATLAB有专业和学生版之分。二者功能相同,但计算规模和计算难度有差别。 在国内外,已有许多高等院校把MATLAB列为本科生、研究生必须掌握的基本技能。我校自1999年列为研究生选修课程。而且有很多教师、研究生把它作为进行科研的重要工具。 国内关于MATLAB的书籍很多,如: 《精通MATLAB 5.3》张志涌等编著北京航空航天大学出版社,2000.8

《科学计算语言MATLAB简明教程》杜藏等编著南开大学出版社,1999.6 《精通MATLAB 5》张宜华编写清华大学出版社,1999.6 《精通MATLAB--综合辅导与指南》 Duane Hanselman、Bruce Littlefield编著李人厚等译较西安交通大学出版社,1998.1 等等 本课程主要介绍MATLAB 5.3的基本功能和基础知识。至于其包含的多种工具箱,如仿真工具箱、解非线性方程(组)工具箱、优化工具箱等,应通过本学习后,结合各专业自己进一步学习和使用。 第1章MATLAB基础 1.1 源文件(M-文件) 分为两类:函数文件和非函数文件。 都用扩展名.M 1.1.1函数文件

第一章MATLAB基础知识

第一章MATLAB基础知识 1.1 MATLAB开发环境 1.MATLAB操作桌面 MATLAB4.0以上版本都是在Windows以上环境支持下操作与运行的,因此,这里必须假定读者对Windows有一定的了解和掌握。本书以Windows98环境,MATLAB6.5版本为例介绍。书中绝大多数例子在MA TLAB5.3版本中亦能使用. 要想进入MATLAB系统,方法有二: (1)在Windows98的桌面上双击MATLAB快捷图标。 (2)单击Windows98的“开始”按钮,再依次单击:程序/MA TLAB/MA TLAB6.5; 图1-1 MATLAB6.5除保留了传统的命令窗口外,还增加了启动平台窗口、工作空间窗口、命令历史窗口、当前路径窗口等窗口,与新的M文件编辑器和新的在线帮助浏览器等共同构成了MA TLAB6.5的开发环境。 MATLAB的开发环境是MATLAB语言的基础和核心部分,MATLAB语言的全部功能都是在MA TLAB的开发环境中实现的,MA TLAB的仿真工具Simulink、MATLAB

的工具箱等其他附加功能的实现也必须使用MATLAB开发环境,因此,掌握MATLAB 的开发环境是掌握MATLAB语言的关键。 启动MA TLAB后,将显示包括命令窗口、启动平台窗口、工作空间窗口、命令历史窗口和当前路径窗口等5个窗口和主菜单组成的操作桌面(图1-1)。本节对操作桌面的各个窗口作简要介绍,部分窗口的功能和使用将在以后的章节中详细介绍。 操作桌面缺省状态下显示3个窗口,当前路径和工作空间窗口在同一位置显示,可以通过该窗口下方的箭头或窗口标签来切换,命令历史窗口和当前目录窗口在同一位置显示,可以通过该窗口下方窗口标签来切换。每个窗可以脱离操作桌面独立出来。也可以通过菜单View来选择显示哪些窗口。 MATLAB还设定了几种特定的窗口布局方式,在View菜单的Desktop Layout选项中,给定了6种布局方式: Default(缺省方式) Command Window Only(只显示命命令窗口方式) Simple(简单方式,只有命令历史窗口和命令窗口) Short History(低命令历史窗口方式) Tall History(高命令历史窗口方式) Five Panel(5个窗口平铺方式) 2.MATLAB的通用参数设置 MATLAB的通用参数和各功能窗口的参数可以通过主菜单中的file/Preferences项设置,这里先介绍通用参数的设置。 在主菜单中选择Preferences项,打开Preferences窗口(图1-2),缺省状态为通用参数设置,其选项包括: Display(显示选择)Show tooltips(显示相关信息),当单选框选择后,鼠标放在工具栏的快捷按钮上时显示相关信息。 Toolbox caching(工具箱缓冲区)对于远程使用MATLAB的用户,应选择单选框Enable Toolbox caching(打开工具箱缓冲区),建立一个高速缓冲区,以提高使用速度,对单机用户该选项作用不大。 Figure window printing(图形窗口打印)有3个选项,分别为Use printer default(按打印机缺省设置输出)、Always send as black and white(按黑白图形输出)和Always send as color(按彩色图形输出)。

MATLAB快速入门第一章

。下面将对菜单进行介绍。 图1-8 1.3.1 M文件 M文件有两种类型:文本M文件和函数M文件。 (一)文本M文件 一个比较复杂的程序常常要作反复的调试,这时你不妨建立一个文本文件并把它储存起来,可以随时调用进行计算。建立文本文件可以在File菜单中选择New,再选择M-file,这时MATLAB将打开一个文本编辑窗口,在这里输入命令和数据。储存时文件名遵循MA TLAB变量命名的原则,但必须以m 为扩展名,其一般形式为 < M文件名>.m 如juzhen.m, pp.m等。 值得注意的是,文本M文件中的变量都是全局变量,在执行过程中, 文本M 文件中的命令可以使用目前工作区中的变量,它所产生的变量也将成为工作区的一部分。例如我们把下面的程序保存为名为budijifen1.m的文本M文件:function budijifen1 x=-4*pi:0.014*pi;a=1; for C=-3:3 y =1/2*(-sin(a*x)+a*x)/a+C plot(x,y) hold on end grid hold off xlabel('自变量 X') ylabel('因变量 Y') title('不定积分的积分曲线族') legend('不定积分的积分曲线族') 然后在MA TLAB工作窗口中输入文件名:

>> budijifen1 运行后屏幕显示计算结果(略)和图形(见图1-9)。 再如,将下面的一个生成矩阵的程序保存为名为juzhen.m 的文本M 文件: for i=1:k for j=1:n b(i,j)=7/(2*i+3*j-6); end end a=rats(b) 然后在MA TLAB 工作窗口中输入: >> k=3;n=4; juzhen,b 图1-9 名为budijifen1.m 的文本M 文件的图形 运行后屏幕显示运行结果如下: a = -7 7/2 7/5 7/8 7 7/4 1 7/10 7/3 7/6 7/9 7/12 b = -7.0000e+000 3.5000e+000 1.4000e+000 8.7500e-001 7.0000e+000 1.7500e+000 1.0000e+000 7.0000e-001 2.3333e+000 1.1667e+000 7.7778e-001 5.8333e-001 (二) 函数M 文件 函数M 文件是另一类M 文件,我们可以根据需要建立自己的函数文件,它们能够像库函数一样方便地调用,从而极大地扩展MA TLAB 的能力。如果对于一类特殊的问题,建立起许多函数M 文件,就能最终形成独立的工具箱。 函数M 文件的第一行有特殊的要求,其形式必须为 function <因变量>= <函数名>(<自变量>) 其他各行为从自变量计算因变量的语句,并最终将结果赋予因变量。而这个M 文件的文件名必须是<函数名>.m 。下面给出函数文件的一个简单例子。 如果我们要在某个程序中要调用函数π= 21y e 22x -,就必须建立并保存下面的名为fun.m 的函数M 文件。 function y = fun(x)

第一章 MATLAB 的基础简介

第一章 MATLAB 基础简介 三.MATLAB 的系统开发环境(System Developing Environment) 1.操作桌面(Operating Desktop) (1)桌面布局:6个窗口(图示、操作演示) *命令窗口(Commend Window) *工作空间窗口(Workspace) *当前目录浏览器(Current Directory ) *命令历史窗口(Commend History ) *启动平台(Launch Pad)6.x版 *帮助窗口(Help) *M文件优化器(Profiler) Profiler for Improving Performance:One way to improve the performance of your M-files is using profiling tools. MATLAB provides the M-file Profiler, a graphical user interface that is based on the results returned by the profile function. Use the Profiler to help you determine where you can modify your code to make performance improvements. 窗口的切换、放大与关闭。(switching, Amplification, tun-off) 7.0版Desktop菜单中的desktop layout菜单中提供的4种可选布局: *Default *Command Window Only * History and Command Window *All Tabbed (2).菜单和工具栏;(Menu and toolbar)操作桌面上有6个菜单和带有10个快捷按钮的工具栏组,(图示、操作演示)(3).改变桌面设置:(Setting) File 菜单中Preference对话框中设置(图示、操作演示) 2. 命令窗口:(Command window)MATLAB的主要交互窗口。

相关主题
文本预览
相关文档 最新文档