第二计算机语言_第1页
第二计算机语言_第2页
第二计算机语言_第3页
第二计算机语言_第4页
第二计算机语言_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二计算机语言MATLAB

张贤明

东南大学

二。。七年七月

目录

第一章MATLAB概述...............................................................1

第一节简单说明...................................................................1

第二节课程教学目的及基本要求....................................................4

第三节MATLAB简介..............................................................5

第车节MATLAB集成环境.........................................................11

第五节MATLAB常用命令.........................................................12

第二章MATLAB数值运算...........................................................15

第一节矩阵创建与运算............................................................15

第二节多项式运算................................................................18

第三节代数方程组求解...........................................................20

第四节数据分析与统计...........................................................21

第五节拟合与插值................................................................23

第三章MATLAB符号运算..........................................................26

第一节符号运算的基本操作........................................................26

第二节因式分解、展开和简化......................................................27

第三节符号微积分................................................................28

第四节符号方程求解..............................................................31

第五节可视化数学分析界面........................................................33

第四章MATLAB计算的可视化......................................................34

第一节二维数据曲线图............................................................34

第二节三维图形..................................................................42

第三节图形修饰处理..............................................................49

第四节图像处理与动画制作........................................................51

第五章MATLAB程序设计..........................................................54

第一节M文件及程序运算符.......................................................54

第二节程序控制结构..............................................................55

第三节函数文件..................................................................60

第四节程序调试及常用指令........................................................62

第六章MATLAB文件操作..........................................................66

第一节文件的打开与关闭.........................................................66

第二节文件的读写操作............................................................66

第三节数据文件定位..............................................................69

第七章MATLAB图形句柄..........................................................70

第一节图形对象及其句柄.........................................................70

第二节图形对象属性..............................................................74

第三节图形对象的创建............................................................84

第八章MATLAB图形用户界面设计..................................................89

第一节简单用户界面制作.........................................................89

1

第二节图形用户界面的设计原则和一般步骤............................................91

第三节菜单设计.....................................................................92

第四节用户控件.....................................................................96

第五节图形用户界面设计工具........................................................101

第六节综合练习.....................................................................105

2

第一章MATLAB概述

第一节简单说明

一、课程设置依据

名称开设情况使用概率方面对主语言作用

第二外国语言多(日、德、法)少无(单词,语法)

第二计算机语言少(MATLAB)多有(程序控制方式)

如:(D程序控制,相似;

MATLAB:

fori=l:1:100

C++:

for(i=l;i<=100;i++)

(2)文件操作,相同。

fp二fopen(文件名,打开方式)

fclose(fp)

fread,fwrite,fprintf,fscanf(fp,格式,输入列表)

fclose(fp)

二、计算机语言分类

第一代计算机语言:机器语言,由0,1组成的二进制码;

第二代计算机语言:汇编语言,用指令来代替二进制码,它可以直接对计算机硬件进行操作;

以上为低级语言,专业语言。

第三代计算机语言:算法语言,源程序可以用解释、编译两种方式执行,影响较大、使用较

普遍的有FORTRAN、ALGOL.COBOL,BASIC,LISP,SNOBOL、PL/1、Pascal.C、PROLOG.Ada、C++、

Delphi,JAVA等。其中:

FORTRAN(FORmulaTRANslation公式翻译),适用于数值计算。

C/C++(BasicCombinedProgrammingLanguage基础混合编程语言),适用于编写系统软件

(UNIX)o

BASIC(Beginner(sAll-purposeSymbolicInstructionCode初学者通用符号指令代码),

适用于初学者。

第四代计算机语言:非过程化语言,是交互式程序设计环境,由计算机自动生成程序,提高

了软件的生产效率,常用的有VC、VB、VF、MATLAB等。其中:

MATLAB(皿rixL弛oratory矩阵实验室),是一种演算式语言,使用方便,应用广泛。

以上称高级语言,大众语言。

第五代计算机语言:人工智能语言。MATLAB适合于人的思维方式(for1=1:1:10),属人性化

语言.

三、MATLAB主要特点

例:求•元二次方程ax2+bx+c=0的根,编写其程序,求根公式为

_-h±y/h2-4ac

x\,2=(Qw0)°

2a

1

此方程可能有两个实根(包括实重根),也可能有一对共轨复根,均需要按照判别式从-4公

的情况来决定。

1、C程序

ftinclude<stdio.h>

#include<math.h>

voidsolv(floata,floatb,floatc)

(

doubledisc,twoa,terml,term2;

if(a==0.0)

if(b二二0.0)

printf(z,Noanswerduetoinputerror!\nz,);

else

printf("Thesinglerootis:%f\n,z,-c/b);

else

(

disc=b*b-4*a*c;

twoa=2*a;

terml=-b/twoa;

term2=sqrt(fabs(disc))/twoa;

if(disc<0.0)

printf(z,Complexroot:\nrealpart=%f,imagepart=%f\n,\terml,term2);

else

printf("realroot:\nrootl=%f,root2=%f\n,,,terml+term2,terml-term2);

)

)

voidmainO

(

floata,b,c;

printf(z,Inputa,b,c:〃);

scanfC%f%f%f,z,&a,&b,&c);

solv(a,b,c);

)(30行)

2、VB程序

PrivateSubForm_Activate()

Dima#,b#,c#,d#,xl#,x2#

a=Val(InputBox(〃a=〃,〃数据输入框〃,1))

b二Val(InputBox(〃b=〃,〃数据输入框〃,2))

c=Val(InputBox(〃c=〃,〃数据输入框〃,1))

Ifa=0Then

Ifb=0Then

Ifc=0ThenPrint〃解得:x有无穷解〃ElsePrint〃解得:x无解〃

Else

Print〃解得:x=〃&-c/b

EndIf

Else

2

d=b*b-4*a*c

Ifd>0Then

xl=(-b+Sqr(d))/(2*a)

x2=(-b-Sqr(d))/(2*a)

Print〃解得:xl=〃&xl,

Print〃x2=〃&x2

Else

xl=-b/(2*a)

Ifd=0ThenPrint〃解得:x=〃&xl

Ifd<0Then

x2=Sqr(-d)/(2*a)

Print〃解得:xl=〃&xl&〃+〃&x2&〃i〃

Print〃x2=〃&xl&〃-〃&x2&〃i〃

EndIf

EndIf

EndIf

EndSub(29行)

3、FORTRAN程序

4READ(5,5)A,B,C

5FORMAT(3F4.1)

IF(A)15,35,15

15XlR=-B/(2.0*A)

D=B*B-4.0*A*C

IF(D)10,20,30

10X2R=X1R

X1I=SQRT(-D)A2.O*A)

X2I=-X1I

GOTO34

20X2R=X1

X1I=O.0

X2I=0.0

GOTO34

X2R=X1R-SQRT(D)/⑵0*A)

X1R=XIR+SQRT(D)/(2.O*A)

Xl1=0.0

X2I=0.0

34WRITE(6,6)A,B,C,X1R,XII,X2R,X2IXO=X

6FORMAT(IX,7(F7.4,3X))

GOTO4

STOPo

END(23行)

4、MATLAB程序

»P=[l,2,1]

P=

121

>>r=roots(p)

3

r=

-1

-1(2行)

»p=[1,2,3];r=roots(p)

r=

-1.0000+1.4142i

-1.0000-1.4142i(l行2句)

»r=roots([6,-5,1])

0.5000

0.3333(1行1句)

所有计算问题函数化,工具箱化,属演算式语言,使用简单。

第二节课程教学目的及基本要求

一、教学目的

本课程为全校性公共任选课,完全不必具备其它计算机语言的基础和专业知识,各年级各专

业的同学都可选修。通过本课程学习,使学生了解MATLAB,能够熟练掌握数学(矩阵)运算,简

单编程,简单的数据处理及基本图形绘制,帮助学生解决学习或工作中的数值计算、数据处理、

图形绘制等问题,并达到计算机语言素养的训练,为C++高级编程服务。

二、学习内容

(1)MATLAB简介;

(2)MATLAB的数值运算;

(3)MATLAB的符号运算;

(4)MATLAB计算的可视化;

(5)MATLAB文件操作;

(6)MATLAB程序设计;

(7)MATLAB图形句柄;

(8)MATLAB图形用户界面设计。

三、考核方式

(1)综合作业60+测验40;

(2)综合作业需完成自制用户介面设计,并结合实例实现简单分析或计算功能,并把计算结果

图形化,要有个性化图形设置;

4

>MATLAB6.5辅助神经网络分析与设计系统目回区|

文件操作输入输出文件格式辅助功能

动量法和学习速率自适应调整方法训练与学习

输入文件位置及名称e\bp\aa.txt

输出文件位置及名称e:\bp\cc.txt

待求文件位置及名称

隐含层神经单元个数15

显示间隔次数25

最大循环次数1000

目标误差0.02

设置学习速率0.01

学习速率增加的比率1.05

学习速率减小的比率0.7

设定动量常数09

设定展大误差比率1.04

BP神经网络分析与设计系统

(3)最后一次课安排测验,完成40分填空题,为MATLAB软件中特别实用的内容和函数,主要

为己知函数写出功能或根据要求写出相应函数。

四、教学参考书

1、掌握和精通MATLAB

1997年7月第一版;纯印刷版发行;以4.2c为软件基础;除符号计算外,其余内容迄今适

用。(全书52万字)

2、精通MATLAB5.3

2000年8月第一版;印刷、电子版配套发行;以5.3为软件基础;内容详尽深入,迄今全部

适用。(全书90万字)

3、精通MATLAB6.5

2002年12月第一版;2002全新版,详述MATLAB6.5精华,由印刷版和电子版融合而成,是本

课程的教学用书。(全书103万多字)

第三节MATLAB简介

一、课程介绍

5

C++支持面向对象的程序设计方法,特别适合于中型和大型的软件开发项目(Windows),从开

发时间、费用到软件的重用性、可扩充性、可维护性和可靠性等方面,C++均具有很大的优越性。

但C++是编译类语言,使用过程不方便,对一些简单问题,解释类语言比较灵活,可以动态地调

整(可不使用程序文件)、修改应用程序。MATLAB是一种解释类语言,它将一个优秀软件的易用

性与可靠性、通用性与专业性、一般目的的应用与高深的科学技术应用有机的相结合,是一种直

译式的高级语言,比其它程序设计语言容易。计算机语言正向“智能化”方向发展,MATLAB被称

为第四代编程语言,满足“智能化”的方向。MATLAB已经不仅仅是一个“矩阵实验室”了,它集

科学计算、图象处理、多媒体处理于一身,并提供了丰富的Windows图形界面设计方法。它以超

群的风格与性能风靡全世界,成功地应用于各工程学科的研究领域。近年来,MATLAB语言已在我

国推广使用,现在已应用于各学科研究部门和许多高等院校。

二、MATLAB由来

MATLAB语言是由美国的CleverMoler博士于1980年开发的,设计者的初衷是为解决“线性

代数”课程的矩阵运算问题,取名MATLAB即蟠rixLaboratory矩阵实验室的意思。

MATLAB是一种演算式语言。MATLAB的基本数据单元是既不需要指定维数,也不需要说明数据

类型的矩阵(向量和标量为矩阵的特例),而且数学表达式和运算规则与通常的习惯相同。因此

MATLAB语言编程简单,使用方便。

三、MATLAB的应用领域

(1)工业研究与开发;

(2)数学教学,特别是线性代数;

(3)数值分析和科学计算方面的教学与研究;

(4)电子学、控制理论和物理学等工程和科学学科方面的教学与研究;

(5)经济学、化学和生物学等计算问题的所有其他领域中的教学与研究。

四、初识MATLAB

1、矩阵乘积问题

考虑两个矩阵A和B的乘积问题,在C语言中要实现两个矩阵的乘积并不仅仅是一组双重循

环的问题。双重循环当然是矩阵乘积所必需的,除此之外要考虑的问题很多。例如:A和B有一

个是复数矩阵怎么考虑;其中一个是复数矩阵时怎么考虑;全部是实系数矩阵时又怎样处理,这

样就要在一个程序中有4个分支,分别考虑这4种情况。然而还得判断这两个矩阵是否可乘。考

虑两个矩阵是否可乘也并不仅仅是判断A的列数是否等于B的行数这么简单。其中一个若为标量,

则它们可以无条件相乘。其中有标量时又得考虑实数与复数问题等。所以说,没有几十分种的时

间,用C语言并不可能编写出考虑各种情况的子程序。有了MATLAB这样的工具,A和B矩阵乘积

用A*B这样简单的算式就行了。

例:

»A=magic(3)

A=

816

357

492

»A*A'

ans=

1017153

718371

5371101

»A*A

6

ans二

916767

679167

676791

MATLAB提供了丰富的矩阵运算处理功能,是基于矩阵运算的处理工具。

又例如C=A+B,A,B,C都是矩阵,是矩阵的加运算。

即使一个常数,Y=5,MATLAB也看做是一个1x1的矩阵。

2、求解线性方程组(对于线性系统有Ax二b)

(1)3XI+X2-X3=3.6

XI+2XZ+4X3=2.1

-XI+4XZ+5X3=-l.4

»A=[31-1;124;-l45];b=[3.6;2.

»x=A\b

x=

1.4818

-0.4606

0.3848

(2)

»A=[2,-3,1;8,3,2;45,1,-9];b=[4;2;17];

»x=inv(A)*b

0.4784

-0.8793

0.4054

3、绘图

(1)绘制正弦曲线和余弦曲线。

»x=[0:0.5:360]*pi/180;

>>plot(x,sin(x),x,cos(x));

>>legend(,sin','con,)

(2)考虑一个二元函数

35x2y2(x+)2y2

Z=/(x,y)=3(l-x)2er2/2-(y+i)2-io(|-x-y)e---^e-'-

如何用三维图形的方式表现出这个曲面?

用C这类语言,绘制三维图形是一个难点,且从一个机器移植程序到另一个机器,大部分时

7

间花在调试程序上。但使用MATLAB这类高级语言,完成这样的工作就是几个直观语句的事。且得

出图形美观准确、可以将语句不变化地移植到另外的机器匕得出完全一致的结果,如下所示。

>>[x,y]=meshgrid(-3:1/8:3)

»z=3.*(l-x).2.*exp(-(x.2)./2-(y+l).2)-10.*(x/5-x.3-y.5).*exp(-x."2-y.2)-1

/3.*exp(-(x+l).2-y.2)

»Surf(x,y,z)

»Shadinginterp

>>Colorbar

(3)丰富的绘图功能与计算结果的可视化:

具有高层绘图功能一两维、三维绘图;具有底层绘图功能一句柄绘图;使用plot函数可随时

将计算结果可视化。

4、数学分析

(1)求方程3x,+7x3+9x2-23=0的全部根。

»p=[3,7,9,0,-23L%建立多项式系数向量

»x=roots(p)/求根

X=

-1.8857

-0.7604+1.7916i

-0.7604-1.7916i

1.0732

i

(2)求积分Jxlog(l+x)dxo

o

»quad(,x.*log(l+x)',0,1)

0.2500

2]

(3)求积分--------dx.

{X3-2X-5

»F=inline('1./(x.-3-2.*x-5),);

»Q=quad(F,0,2)

Q=

-0.4605

用于解代数方程、微积分、复合导数、积分、二重积分、有理函数、微分方程、泰乐级数展

开、寻优等等,可求得解析符号解。

5、图形化程序编制功能

8

动态系统进行建模、仿真和分析的软件包,用结构图编程,而不用程序编程,只需拖几个方

块、连几条线,即可实现编程功能。以下列出部分分工具箱名称:

MATLAB主工具箱

符号数学工具箱

SIMULINK仿真工具箱

控制系统工具箱

信号处理工具箱

图象处理工具箱

通讯工具箱

系统辨识工具箱

神经元网络工具箱

金融工具箱

例:

在MATLAB中有许多用于不同应用领域的工具箱。这里,作为一个例子给出PDE工具箱,这个

工具箱通过使用有限元方法(theFiniteElementMethod)解椭圆方程、抛物线方程和双曲线方程。

区域要分成大量三角形子区域,对每个三角形,其解由一个简单函数估计。所用的三角形越多,

其偏差就越小。

6、文件操作

(1)与DOS命令一致。

cd—可改变当前工作目录

cd_—显示当前子目录

cdc:\matlab\toolbox

cd_..一退出当前子目录到上一级目录

cd_\一回到根目录

(2)m文件执行方式与DOS命令一致。

examl.m文件执行examl即可。

>>examl

Q=

-0.4605

9

五、联机帮助

help功能提供MATLAB大部分主题的在线帮助信息。

help显示help主题一览表。

helpplotxyz显示有关三维做图指令帮助信息。

help[显示特殊字符与符号帮助信息。

helphelp显示help的帮助信息。

例:

»helpplot

PLOTLinearplot.

PLOT(X,Y)plotsvectorYversusvectorX.IfXorYisamatrix,thenthevectoris

plottedversustherowsorcolumnsofthematrix,whicheverlineup.IfXisascalarand

Yisavector,length(Y)disconnectedpointsareplottedo

PLOT(Y)plotsthecolumnsofYversustheirindex.IfYiscomplex,PLOT(Y)is

equivalenttoPLOT(real(Y),imag(Y)).InallotherusesofPLOT,theimaginarypartis

ignored.Variouslinetypes,plotsymbolsandcolorsmaybeobtainedwith。

PLOT(X,Y,S)whereSisacharacterstringmadefromoneelement

fromanyorallthefollowing3columns:

bblue.point-solid

ggreenocircle:dotted

rredxx-markdashdot

ccyan+plus一dashed

mmagenta*star

yyellowssquare

kblackddiamond

Vtriangle(down)

ctriangle(up)

<triangle(left)

>triangle(right)

ppentagram

hhexagram

Forexample,PLOT(X,Y,'r+:')plotsareddottedlinewithaplusateachdatapoint;

PLOT(X,Y,'bs')plotsbluesquareateachdatapointbutdoesnotdrawanyline.

PLOT(XI,Yl,SI,X2,Y2,S2,X3,Y3,S3,...)combinestheplotsdefinedbythe(X,Y,S)

triples,wheretheX'sandY'sarevectorsormatricesandtheS'sarestrings.

Forexample,PLOT(X,Y,'y-',X,Y,'go')plotsthedatatwice,withasolidyellowline

interpolatinggreencirclesatthedatapoints.

ThePLOTcommand,ifnocolorisspecified,makesautomaticuseofthecolorsspecified

bytheaxesColorOrderproperty.ThedefaultColorOrderislistedinthetableabovefor

colorsystemswherethedefaultisblueforoneline,andformultiplelines,tocycle

throughthefirstsixcolorsinthetable.Formonochromesystems,PLOTcyclesoverthe

axesLineStyleOrderproperty.

PLOTreturnsacolumnvectorofhandlestoLINEobjects,onehandleperline.

TheX,Ypairs,orX,Y,Striples,canbefollowedbyparameter/valuepairstospecify

additionalpropertiesofthelines.

SeealsoSEMILOGX,SEMILOGY,LOGLOG,PLOTYY,GRID,CLF,CLC,TITLE,XLABEL,YLABEL,

AXIS,AXES,HOLD,COLORDEF,LEGEND,SUBPLOT,STEM.

第四节MATLAB集成环境

启动MATLAB后,将进入MATLAB6.5集成环境。MATLAB6.5集成环境包括MATLAB主窗口、

命令窗口(CommandWindow)、工作空间窗口(Workspace)、命令历史窗口(CommandHistory),当

前目录窗口(CurrentDirectory)和启动平台窗口(LaunchPad),

1、菜单栏

在MATLAB6.5主窗口的菜单栏,共包含File、Edit、View、Web、Window和Help6个菜单

项。

2、工具栏

MATLAB6.5主窗口的工具栏共提供了10个命令按钮。这些命令按钮均有对应的菜单命令,

但比菜单命令使用起来更快捷、方便。

3、命令窗口

命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。

MATLAB命令窗口中的“>>”为命令提示符,表示MATLAB正在处于准备状态。在命令提示符后键

入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。

一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也可以输入若干条

命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。

如果一个命令行很长,一个物理行之内写不下,可以在第一个物理行之后加上3个小黑点并

按下回车键,然后接着下一个物理行继续写命令的其他部分。3个小黑点称为续行符,即把下面

的物理行看作该行的逻辑继续。

在MATLAB里,有很多的控制键和方向键可用于命令行的编辑。

4、工作空间窗口

工作空间是MATLAB用于存储各种变量和结果的内存空间。在该窗口中显示工作空间中所有变

量的名称、大小、字节数和变量类型说明,可对变量进行观察、编辑、保存和删除。

5、当前目录窗口和搜索路径

当前目录是指MATLAB运行文件时的工作目录,只有在当前目录或搜索路径下的文件、函数可

以被运行或调用。

在当前目录窗口中可以显示或改变当前目录,还可以显示当前目录下的文件并提供搜索功能。

将用户目录设置成当前目录也可使用cd命令。例如,将用户目录c:\mydir设置为当前目录,

可在命令窗口输入命令:

»cdc:\mydir

6、命令历史记录窗口

11

在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录,并且还标

明了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令的再运行。如果要清除

这些历史记录,可以选择Edit菜单中的ClearCommandHistory命令。

7、启动Start按钮

MATLAB6.5主窗口左下角还有一个Start按钮,单击该按钮会弹出一个菜单,选择其中的命

令可以执行MATLAB产品的各种工具,并且可以查阅MATLAB包含的各种资源。

8、演示系统

在帮助窗口中选择演示系统(Demos)选项卡,然后在其中选择相应的演示模块,或者在命令窗

口输入Demos,或者选择主窗口Help菜单中的Demos子菜单,打开演示系统。

第五节MATLAB常用命令

1、addpathc:\matlab\work一添加工作路径。

2、cdc:\mydir一更改工作路径。

3、path一显示当前工作路径。

4、doc—显示帮助信息,如下图所示。

5、sin

SIN(X)isthesineoftheelementsofX.

6、what

M-filesinthecurrentdirectory

7、clear

CLEARClearvariablesandfunctionsfrommemory.

CLEARALLremovesallvariablesfromtheworkspace.

CLEARVARIABLESdoesthesamething.

8^length

LENGTHLengthofvector.

LENGTH(X)returnsthelengthofvectorX.

9、load

LOADLoadworkspacevariablesfromdisk.

LOADFILENAMEretrievesallvariablesfromafilegivenafullpathnameoraMATLABPATH

relativepartialpathname(seePARTIALPATII).IfFILENAMEhasnoextensionLOADlooksfor

12

FILENAMEandFILENAME,matandtreatsitasabinary"MAT-file".IfFILENAMEhasan

extensionotherthan.mat,itistreatedasASCII.

10>mlock

MLOCKPreventM-filefrombeingcleared.MLOCKlocksthecurrentlyrunning\f-filein

memorysothatsubsequentCLEARcommandsdonotremoveit.

UsethecommandMUNLOCKorMUNLOCK(FUN)toreturntheM-filetoitsnormalCLEAR-able

state.

11、who

WHOListcurrentvariables.

12、whos

WHOSListcurrentvariables,longform.

13>format

FORMATSetoutputformat.

AllcomputationsinMATLABaredoneindoubleprecision.

FORMATmaybeusedtoswitchbetweendifferentoutputdisplayformatsasfollows:

FORMATDefault.SameasSHORT.

FORMATSHORTScaledfixedpointformatwith5digits.

FORMATLONGScaledfixedpointformatwith15digits.

FORMATSHORTEFloatingpointformatwith5digits.

FORMATLONGEFloatingpointformatwith15digits.

FORMATSHORTGBestoffixedorfloatingpointformatwith5digits.

FORMATLONGGBestoffixedorfloatingpointformatwith15digits.

FORMATHEXHexadecimalformat.

FORMAT+Thesymbols+,-andblankareprintedforpositive,negativeandzero

elements.Imaginarypartsareignored.

FORMATBANKFixedformatfordollarsandcents.

FORMATRATApproximationbyratioofsmallintegers.

14、delete

DELETEDeletefileorgraphicsobject.

DELETEfile_namedeletesthenamedfilefromdisk.Wildcardsmaybeused.Forexample,

DELETE*.pdeletesallP-filesfromthecurrentdirectory.

15>dir

DIRListdirectory.

DIRdirectory_nameliststhefilesinadirectory.Pathnamesandwildcardsmaybe

used.Forexample,DIR*.mlistsalltheM-filesinthecurrentdirectory.

16>hold

HOLDHoldcurrentgraph.

HOLDONholdsthecurrentplotandallaxispropertiessothatsubsequentgraphing

commandsaddtotheexistinggraph.

HOLDOFFreturnstothedefaultmodewherebyPLOTcommandserasethepreviousplots

andresetallaxispropertiesbeforedrawingnewplots.

17>1inspace

LINSPACELinearlyspacedvector.

LINSPACE(X1,X2)generatesarowvectorof100linearlyequallyspacedpointsbetween

XIandX2.

LINSPACE(XI,X2,N)generatesNpointsbetweenXIandX2.ForN<2,LINSPACEreturns

13

X2.

18>save

SAVESaveworkspacevariablestodisk.

SAVEFILENAMEsavesallworkspacevariablestothebinary"MAT-file”

namedFILENAME,mat.ThedatamayberetrievedwithLOAD.IfFILENAME

hasnoextension,.matisassumed.

SAVEFILENAMEXsavesonlyX.

SAVEFILENAMEXYZsavesX,Y,andZ.Thewildcard'canbeusedto

saveonlythosevariablesthatmatchapattern.

ASCIIOptions:

SAVE...-ASCIIuses8-digitASCIIforminsteadofbinaryregardless

offileextension.

SAVE...-ASCII-DOUBLEuses16-digitASCIIform.

SAVE...-ASCII-TABSdelimitswithtabs.

SAVE...-ASCII-DOUBLE-TABS16-digit,tabdelimited.

MATOptions:

SAVE...-MATsavesinMATformatregardlessofextension.

SAVE...-V4savesaMAT-filethatMATLAB4canLOAD.

SAVE...-APPENDaddsthevariablestoanexistingfile(MAT-fileonly).

14

第二章MATLAB数值运算

第一节矩阵创建与运算

一、创建矩阵的方法

1、直接输入法

»a=[l23;456]

a=

123

456

规则:

(1)矩阵元素必须用[]括住;

(2)矩阵元素必须用逗号或空格分隔;

(3)在[]内矩阵的行与行之间必须用分号分隔。

2、矩阵元素

矩阵元素可以是任何MATLAB表达式,可以是实数,也可以是复数,复数可用特殊函数i,

j输入

»x=[2pi/2:sqrt(3)3+5i]

x=

2.00001.5708

1.73213.0000+5.00001

3、符号的作用

(1)逗号和分号可作为指令间的分隔符,MATLAB允许多条语句在同一行出现;

(2)分号如果出现在指令后,屏幕上将不显示结果。

4、说明

(1)只要是赋过值的变量,不管是否在屏幕上显示过,都存储在工作空间中,以后可随时显示

或调用;

(2)变量名尽可能不要重复,否则会覆盖;

(3)当一个指令或矩阵太长时,可用•••续行。

5、冒号的作用

(1)用于生成等间隔的向量,默认间隔为1;

(2)用于选出矩阵指定行、列及元素;

»b=a(l:2,2:3)

b=

23

56

(3)使矩阵中所有元素变为一列。

»c=b(:)

c=

2

5

3

6

6、用MATLAB函数创建矩阵

15

(1)空阵[]—MATLAB允许输入空阵,当一项操作无结果时,返回空阵:

(2)rand一随机矩阵;

(3)eye一单位矩阵;

(4)zeros一全部元素都为0的矩阵;

(5)ones一全部元素都为1的矩阵。

7、其它

还有伴随矩阵、稀疏矩阵、魔方矩阵、对角矩阵、范德蒙等矩阵的创建,就不一一介绍了。

注意:

(1)MATLAB严格区分大小写字母,因此a与A是两个不同的变量;

(2)MATLAB函数名必须小写。

二、矩阵的修改

1、直接修改

可用T键找到所要修改的矩阵,用一罐移动到要修改的矩阵元素上即可修改。

2、指令修改

可以用A(*,*)=*来修改。

例如

»a=[l20;305;789]

a=

120

305

789

»a(3,3)=0

a=

120

305

780

三、数据的保存与获取

1、生成mat数据文件

把MATLAB工作空间中一些有用的数据长久保存下来的方法是生成mat数据文件。

»save—将工作空间中所有的变量存到matlab.mat文件中。

»savedata—将工作空间中所有的变量存到data,mat文件中。

»savedataab—将工作空间中a和b变量存到data,mat文件中。

2、调用已生成的mat文件

下次运行MATLAB时即可用load指令调用已生成的mat文件。

»load一打开matlab.mat文件。

»loaddata—打开data,mat文件。

»loaddataab一打开data,mat文件中的a,b变量。

mat文件是标准的二进制文件,还可以ASCII码形式保存(-ascii)。

四、矩阵运算

1、矩阵加、减(+,一)运算

规则:

(1)相加、减的两矩阵必须有相同的行和列两矩阵对应元素相加减;

(2)允许参与运算的两矩阵之一是标量。标量与矩阵的所有元素分别进行加减操作。

2、矩阵乘(*)运算

16

规则:

(DA矩阵的列数必须等于B矩阵的行数;

(2)标量可与任何矩阵相乘。

»a=[l23;456;780];b=[l;2;3hc=a*b

c=

14

32

23

»d=[-l;0;2];f=pi*d

f=

-3.1416

0

6.2832

矩阵除的运算在线性代数中没有,有矩阵逆的运算。

3、矩阵乘方—a「n,a"p,p'a

a八p—a自乘p次哥

对于P的其它值,计算将涉及特征值和特征向量,如果P是矩阵,a是标量£p使用特征值和

特征向量自乘到P次幕;如a,p都是矩阵,a、则无意义。

»a=[l,2,3;4,5,6;7,8,9];丁2

ans=

303642

668196

102126150

4、矩阵的其它运算

(1)inv一矩阵求逆;

(2)det-行列式的值;

(3)eig—矩阵的特征值;

(4)diag—对角矩阵;

(5)'-矩阵转置;

(6)sqrt一矩阵开方;

5、矩阵的一些特殊操作

(1)矩阵的变维

»a=[l:12];b=reshape(a,3,4);c=zeros(3,4);c(:)=a(:)

c=

14710

25811

36912

⑵矩阵的变向

rot90:旋转;fliplr:上翻;flipud:下翻。

(3)矩阵的抽取

diag:抽取主对角线;

tril:抽取主下三角;

triu:抽取主上三角。

(4)矩阵的扩展

五、矩阵的数组运算

17

数组运算指元素对元素的算术运算,与通常意义上的由符号表示的线性代数矩阵运算不同。

1、数组加减

a.+b

a.-b

2、数组乘除

a.*b—a,b两数组必须有相同的行和列两数组相应元素相乘。

»a=[l23;456;789];

»b=[246;135;7910];

»a.*b

ans=

2818

41530

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论