Matlab使用方法和简介

Matlab使用方法和简介
Matlab使用方法和简介

Matlab使用方法和简介

绪论

Matlab是“Matrix Laboratory”的缩写,意为“矩阵实验室”,是当今美国很流行的科学计算软件.信息技术、计算机技术发展到今天,科学计算在各个领域得到了广泛的应用.在许多诸如控制论、时间序列分析、系统仿真、图像信号处理等方面产生了大量的矩阵及其相应的计算问题.自己去编写大量的繁复的计算程序,不仅会消耗大量的时间和精力,减缓工作进程,而且往往质量不高.美国Mathwork软件公司推出的Matlab软件就是为了给人们提供一个方便的数值计算平台而设计的.

Matlab是一个交互式的系统,它的基本运算单元是不需指定维数的矩阵,按照IEEE的数值计算标准(能正确处理无穷数Inf(Infinity)、无定义数NaN(not-a-number)及其运算)进行计算.系统提供了大量的矩阵及其它运算函数,可以方便地进行一些很复杂的计算,而且运算效率极高.Matlab命令和数学中的符号、公式非常接近,可读性强,容易掌握,还可利用它所提供的编程语言进行编程完成特定的工作.除基本部分外,Matlab还根据各专门领域中的特殊需要提供了许多可选的工具箱,如应用于自动控制领域的Control System工具箱和神经网络中Neural Network工具箱等.

第一节Matlab的安装及使用

§1.1 Matlab的安装

Matlab有各种版本,早期有Matlab 1.0 for 386的DOS版本,后来逐步发展.这里介绍的版本是Matlab 6.x for Windows.因为它使用方便,界面美观,我们选择它作为主要讲解版本.Matlab还有许多附加的部分,最常见的部分称为Simulink,是一个用作系统仿真的软件包,它可以让您定义各种部件,定义各自对某种信号的反应方式及与其它部件的连接方式.最后选择输入信号,系统会仿真运行整个模拟系统,并给出统计数据.Simulink有时是作为Matlab的一部分提供的,称为Matlab with Simulink版本.Matlab还有许多工具箱,它们是根据各个特殊领域的需要,用Matlab自身的语言编写的程序集,使用起来非常方便.您可以视工作性质和需要购买相应的工具箱.常见的工具箱有:

Signal Process 信号处理System Identification 系统辨识

Optimization 优化Neural Network 神经网络

Control System 自动控制Spline 样条

Symbolic Math 符号代数Image Process 图像处理

Nonlinear Control 非线性控制Statistics 统计

§1.2 Matlab基本用法

从Windows中双击Matlab图标,会出现Matlab命令窗口(Command Window),在一段提示信息后,出现系统提示符“>>”.Matlab是一个交互系统,您可以在提示符后键入各种命令,通过上下箭头可以调出以前打入的命令,用滚动条可以查看以前的命令及其输出信息.

如果对一条命令的用法有疑问的话,可以用Help菜单中的相应选项查询有关信息,也可以用help命令在命令行上查询,您可以试一下help、help help和help eig(求特征值的函数)命令.

下面我们先从输入简单的矩阵开始掌握Matlab的功能.

§1.2.1输入简单的矩阵

输入一个小矩阵的最简单方法是用直接排列的形式.矩阵用方括号括起,元素之间用空格或逗号分隔,矩阵行与行之间用分号分开.例如输入:

A=[1 2 3 ; 4 5 6 ; 7 8 0]

系统会回答

A =

1 2 3

4 5 6

7 8 0

表示系统已经接收并处理了命令,在当前工作区内建立了矩阵A.

大的矩阵可以分行输入,用回车键代替分号,如:

A=[ 1 2 3

4 5 6

7 8 0 ]

结果和上式一样,也是

A =

1 2 3

4 5 6

7 8 0

§1.2.2矩阵元素

Matlab的矩阵元素可以是任何数值表达式.如:

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

注:结果中自动产生了向量的第5个元素,中间未定义的元素自动初始为零.

大的矩阵可把小的矩阵作为其元素来完成,如:

A=[A; [10 11 12]]

结果

A =

1 2 3

4 5 6

7 8 0

10 11 12

小矩阵可用“:”从大矩阵中抽取出来,如:

A=A(1:3,:);

即从A中取前三行和所有的列,重新组成原来的A. (详细介绍参见第二节的相关内容)

§1.2.3语句和变量

Matlab的表述语句、变量的类型说明由Matlab系统解释和判断.Matlab语句通常形式为:

变量=表达式

或者使用其简单形式为:

表达式

表达式由操作符或其它特殊字符、函数和变量名组成.表达式的结果为一个矩阵,显示在屏幕上,同时保存在变量中以留用.如果变量名和“=”省略,则具有ans名(意思指回答)

的变量将自动建立.例如:

键入1900/81

结果为:

ans =

23.4568

需注意的问题有以下几点:

*语句结束键入回车键,若语句的最后一个字符是分号,即“;”,则表明不输出当前命令的结果.

*如果表达式很长,一行放不下,可以键入“…”(三个点,但前面必须有个空格,目的是避免将形如“数2 …”理解为“数2.”与“..”的连接,从而导致错误),然后回车.

*变量和函数名由字母加数字组成,但最多不能超过63个字符,否则系统只承认前63个字符.

*Matlab变量字母区分大小写,如A和a不是同一个变量,函数名一般使用小写字母,如inv(A)不能写成INV(A),否则系统认为未定义函数.

§1.2.4 who和系统预定义变量

输入who命令可检查工作空间中建立的变量,键入:

who

系统输出为:

Your variables are:

A ans x

这里表明三个变量已由前面的例子产生了.

但列表中列出的并不是系统全部的变量,系统还有以下内部变量:

eps、pi、Inf、NaN

变量eps在决定诸如矩阵的奇异性时,可作为一个容许差,容许差的初值为1.0到1.0以后计算机所能表示的下一个最大浮点数,IEEE在各种计算机、工作站和个人计算机上使用这个算法.用户可将此值置为任何其它值(包括0值).Matlab的内部函数pinc和rank以eps为缺省的容许差.

变量pi是 ,它是用imag(log(-1))建立的.

Inf表示无穷大.如果您想计算1/0

S=1/0

结果会是

Warning:Divide by zero

S=Inf

具有IEEE规则的机器,被零除后,并不引出出错条件或终止程序的运行,而产生一个警告信息和一个特殊值在计算方程中列出来.

变量NaN表示它是个不定值.由Inf/Inf或0/0运算产生.

要了解当前变量的信息请键入whos,屏幕将显示:

Name Size Bytes Class

A 4x3 96 double array

S 1x1 8 double array

ans 1x1 8 double array

x 1x5 40 double array

Grand total is 19 elements using 152 bytes

从size及bytes项目可以看出,每一个矩阵实元素需8个字节的内存.4×3的矩阵使用96个字节,全部变量的使用内存总数为152个字节.自由空间的大小决定了系统变量的多少,如计算机上有虚拟内存的话,其可定义的变量个数会大大增加.

§1.2.5数和算术表达式

Matlab中数的表示方法和一般的编程语言没有区别.如:

3 -99 0.0001

9.63972 1.6021E-20 6.02252e23

在计算中使用IEEE浮点算法其舍入误差是eps.浮点数表示范围是10-308~10308.

数学运算符有:

+ 加

- 减

* 乘

/ 右除

\ 左除

^ 幂

这里1/4和4\1有相同的值都等于0.25(注意比较:1\4=4).只有在矩阵的除法时左除和右除才有区别.

§1.2.6复数与矩阵

在Matlab中输入复数首先应该建立复数单位:

i=sqrt(-1)

及j=sqrt(-1)

之后复数可由下面语句给出:

Z=3+4i (注意:在4与i之间不要留有任何空间!)

输入复数矩阵有两个方便的方法,如:

A=[1 2; 3 4] + i*[5 6; 7 8]

和A=[1+5i 2+6i; 3+7i 4+8i]

两式具有相等的结果.但当复数作为矩阵的元素输入时,不要留有任何空间,如1+5i,如在“+”号左右留有空格,就会被认为是两个分开的数.

不过实际使用复数时并没有这么麻烦,系统有一个名为startup.m的Matlab命令文件,建立复数单位的语句也放在其中.当Matlab启动时,此文件自动执行,i和j将自动建立.

§1.2.7输出格式

任何Matlab语句执行结果都可在屏幕上显示,同时赋给指定的变量,没有指定变量时赋给ans.数字显示格式可由format命令来控制(Windows系统下的Matlab系统的数字显示格式可以由Option菜单中的Numerical Format菜单改变).format仅影响矩阵的显示,不影响矩阵的计算与存贮.(Matlab以双精度执行所有的运算)

首先,如果矩阵元素是整数则矩阵显示就没有小数,如x=[-1 0 1],结果为:x=

-1 0 1

如果矩阵元素不是整数则输出形式有:(用命令:format 格式进行切换)

格式中文解释说明

format 短格式

(缺省格式)

Default. Same as SHORT

format short 短格式

(缺省格式)Scaled fixed point format with 5 digits (只显示五位十进制数)

format long 长格式Scaled fixed point format with 15 digits

format short e 短格式e方式Floating point format with 5 digits

format long e 长格式e方式Floating point format with 15 digits

format short g 短格式g方式Best of fixed or floating point format with 5 digits format long g 长格式g方式Best of fixed or floating point format with 15 digits format hex 16进制格式Hexadecimal format

format + +格式The symbols +, - and blank are printed

for positive, negative and zero elements.

Imaginary parts are ignored

format bank 银行格式Fixed format for dollars and cents

format rat 有理数格式Approximation by ratio of small integers

format compact 压缩格式Suppress extra line-feeds

format loose 自由格式Puts the extra line-feeds back in

例如:

x=[4/3 1.2345e-6]

在不同的输出格式下的结果为:

短格式 1.3333 0.0000

短格式e方式 1.3333e+000 1.234e-006

长格式 1.333333333333333 0.000001234500000

长格式e方式 1.333333333333333e-000 1.23450000000000e-006

有理数格式4/3 1/810045

16进制格式3ff5555555555555 3eb4b6231abfd271

+格式+ +

对于短格式,如果矩阵的最大元素比数999999999大,或者比数0.0001小,则在打印时,将加入一个普通的长度因数.如y=1.e20*x,意为x被1020乘,结果为:

y=

1.0e+020*

1.3333 0.0000

“+”格式是显示大矩阵的一种紧凑方法,“+”,“-”和空格显示正数、负数和零元素.最后format compact命令压缩显示的矩阵,以允许更多的信息显示在屏幕上.

§1.2.8 Help求助命令和联机帮助

Help求助命令很有用,它对Matlab大部分命令提供了联机求助信息.您可以从Help 菜单中选择相应的菜单,打开求助信息窗口查询某条命令,也可以直接用help命令.键入help

得到help列表文件,键入“help 指定项目”,如:

键入help eig

则提供特征值函数的使用信息.

键入help [

显示如何使用方括号等.

键入help help

显示如何利用help本身的功能.

还有,键入lookfor <关键字>:可以从m文件的help中查找有关的关键字.

§1.2.9 退出和存入工作空间

退出Matlab可键入quit或exit或选择相应的菜单.中止Matlab运行会引起工作空间中变量的丢失,因此在退出前,应键入save命令,保存工作空间中的变量以便以后使用.键入save

则将所有变量作为文件存入磁盘Matlab.mat中,下次Matlab启动时,

键入load

将变量从Matlab.mat中重新调出.

save和load后边可以跟文件名或指定的变量名,如仅有save时,则只能存入Matlab.mat 中.如save temp命令,则将当前系统中的变量存入temp.mat中去,命令格式为:save temp x 仅仅存入x变量.

save temp X Y Z 则存入X、Y、Z变量.

load temp可重新从temp.mat文件中提出变量,load也可读ASCII数据文件.详细语法见联机帮助.

第二节向量与矩阵运算

Matlab能处理数、向量和矩阵.但一个数事实上是一个1×1的矩阵,1个n维向量也不过是一个1×n或n×1的矩阵.从这个角度上来讲,Matlab处理的所有的数据都是矩阵.Matlab的矩阵处理能力是非常灵活、强大的.以下我们将从矩阵的产生、基本运算、矩阵函数等几个方面来说明.

§2.1向量及矩阵的生成

除了我们在上节介绍的直接列出矩阵元素的输入方法,矩阵还可以通过几种不同的方式输入到Matlab中.

§2.1.1 通过语句和函数产生

1. 向量的产生

除了直接列出向量元素(即所谓的“穷举法”)外,最常用的用来产生相同增量的向量的方法是利用“:”算符(即所谓的“描述法”).在Matlab中,它是一个很重要的字符.如:z=1:5

z =

1 2 3 4 5

即产生一个1~5的单位增量是1的行向量,此为默认情况.

用“:”号也可以产生单位增量不等于1的行向量,语法是把增量放在起始量和结尾量的中间.如:

x=0:pi/4:pi

即产生一个由0~pi的行向量,单位增量是pi/4=3.1416/4=0.7854.

x =

0 0.7854 1.5708 2.3562 3.1416

也可以产生单位增量为负数的行向量.如:

y=6:-1:1

y =

6 5 4 3 2 1

2. 矩阵的产生

Matlab提供了一批产生矩阵的函数:

zeros 产生一个零矩阵diag 产生一个对角矩阵

ones 生成全1矩阵tril 取一个矩阵的下三角

eye 生成单位矩阵triu 取一个矩阵的上三角

magic 生成魔术方阵pascal 生成PASCAL矩阵例如:

ones(3)

ans =

1 1 1

1 1 1

1 1 1

eye(3)

ans =

1 0 0

0 1 0

0 0 1

除了以上产生标准矩阵的函数外,Matlab还提供了产生随机(向量)矩阵的函数rand 和randn,及产生均匀级数的函数linspace、产生对数级数的函数logspace和产生网格的函数meshgrid等等.详细使用请查阅随机文档.

“: ”冒号可以用来产生简易的表格,为了产生纵向表格形式,首先用冒号“: ”产生行向量,再进行转置,计算函数值的列,然后形成有二列的矩阵.例如命令:x=(0.0:0.2:3.0)';

y=exp(-x).*sin(x);

[x y]

产生结果为:

ans =

0 0

0.2000 0.1627

0.4000 0.2610

0.6000 0.3099

0.8000 0.3223

1.0000 0.3096

1.2000 0.2807

1.4000 0.2430

1.6000 0.2018

1.8000 0.1610

2.0000 0.1231

2.2000 0.0896

2.4000 0.0613

2.6000 0.0383

2.8000 0.0204

3.0000 0.0070

§2.1.2 通过后缀为.m的命令文件产生

如有文件data.m,其中包括正文:

A=[ 1 2 3

4 5 6

7 8 0]

则用data命令执行data.m,可以产生名为A的矩阵.

§2.2 矩阵操作

在Matlab中可以对矩阵进行任意操作,包括改变它的形式,取出子矩阵,扩充矩阵,旋转矩阵等.其中最重要的操作符为“:”,它的作用是取出选定的行与列.例如:

A(:,:) 代表A的所有元素;试比较A(:), 将A按列的方向拉成长长的1列(向量);

A(:,J) 代表A的第J列;

A(J:K) 代表A(J), A(J+1), …, A(K),如同A(:)的第J到第K个元素;

A(:,J:K) 代表A(:,J), A(:,J+1), …, A(:,K),如此类推.

对矩阵可以进行各种各样的旋转、变形、扩充:

Matlab中有内部函数fliplr ( Flip matrix in the left/right direction),它对矩阵进行左右旋转.

例x = 1 2 3 fliplr(x)为 3 2 1

4 5 6 6 5 4

同样有flipud:

x = 1 4 flipud(x)为 3 6

2 5 2 5

3 6 1 4

矩阵的转置用符号“' ”表示:

如A=[1 2 3; 4 5 6 ; 7 8 0]

那么:计算B=A'

B =

1 4 7

2 5 8

3 6 0

符号“' ”为矩阵的转置,如果Z为复矩阵,则Z'为它的复数共轭转置,非共轭转置使用Z.' 或conj(Z')求得.

reshape改变矩阵的形状,这是什么意思呢?可举一个例子来说明.

A=[A;[10 11 12]]

A =

1 2 3

4 5 6

7 8 0

10 11 12

则reshape(A,2,6)

ans =

1 7

2 8

3 0

4 10

5 11

6 12 可见,reshape 是将矩阵元素以列为单位进行重组,原来4×3的矩阵变为了2×6的矩阵.那么以下的语句也不难理解了,它将矩阵A 按列打开(函数返回矩阵A 的行数与列数).

reshape(A,1,size(A,1)*size(A,2)),它等价于A(:)' .

还有函数rot90,它可以将矩阵进行各种90度的旋转;tril 及triu 取出矩阵的下三角及上三角阵等.详细的用法可以在需要使用时查阅手册.

第三节 矩阵的基本运算

§3.1 加和减

如矩阵A 和B 的维数相同,则A+B 与A-B 表示矩阵A 与B 的和与差.如果矩阵A 和B 的维数不匹配,Matlab 会给出相应的错误提示信息.如:

A= B=

1 2 3 1 4 7 4 5 6 2 5 8 7 8 0 3 6 0 C =A+B 返回:

C =

2 6 10 6 10 14 10 14 0

如果运算对象是个标量(即1×1矩阵),可和其它矩阵进行加减运算.例如: x= -1 y=x-1= -2

0 -1 2 1

§3.2矩阵乘法

Matlab 中的矩阵乘法有通常意义上的矩阵乘法,也有Kronecker 乘法,以下分别介绍. §3.2.1 矩阵的普通乘法

矩阵乘法用“ * ”符号表示,当A 矩阵列数与B 矩阵的行数相等时,二者可以进行乘法运算,否则是错误的.计算方法和线性代数中所介绍的完全相同.

如:A=[1 2 ; 3 4]; B=[5 6 ; 7 8]; C=A*B , 结果为

C=???? ??4321×???? ??8765=???? ???+??+??+??+?8463745382617251=???

? ??50432219 即Matlab 返回: C =

19 22 43 50

如果A 或B 是标量,则A*B 返回标量A (或B )乘上矩阵B (或A )的每一个元素所得的矩阵.

§3.2.2 矩阵的Kronecker 乘法 对n ×m 阶矩阵A 和p ×q 阶矩阵B ,A 和B 的Kronecher 乘法运算可定义为:

?

?????? ??=?=B a B a B a B a B a B a B a B a B a B A C nm n n m m (21)

2222111211 由上面的式子可以看出,Kronecker 乘积A ?B 表示矩阵A 的所有元素与B 之间的乘积组合而成的较大的矩阵,B ?A 则完全类似.A ?B 和B ?A 均为np ×mq 矩阵,但一般情况下A ?B ≠B ?A .和普通矩阵的乘法不同,Kronecker 乘法并不要求两个被乘矩阵满足任

何维数匹配方面的要求.Kronecker 乘法的Matlab 命令为C=kron(A,B),例如给定两个矩阵A 和B :

A =1234?? ??? B=132246?? ??

?

则由以下命令可以求出A 和B 的Kronecker 乘积C :

A=[1 2; 3 4]; B=[1 3 2; 2 4 6]; C=kron(A,B) C =

1 3

2 2 6 4 2 4 6 4 8 12

3 9 6

4 12 8 6 12 18 8 16 24

作为比较,可以计算B 和A 的Kronecker 乘积D ,可以看出C 、D 是不同的: A=[1 2; 3 4]; B=[1 3 2; 2 4 6]; D=kron(B,A) D =

1 2 3 6 2 4 3 4 9 12 6 8 2 4 4 8 6 12 6 8 12 16 18 24

§3.3 矩阵除法

在Matlab 中有两种矩阵除法符号:“\”即左除和“/”即右除.如果A 矩阵是非奇异方阵,则A\B 是A 的逆矩阵乘B ,即inv(A)*B ;而B/A 是B 乘A 的逆矩阵,即B*inv(A).具体计算时可不用逆矩阵而直接计算.

通常:

x=A\B 就是A*x=B 的解; x=B/A 就是x*A=B 的解.

当B 与A 矩阵行数相等可进行左除.如果A 是方阵,用高斯消元法分解因数.解方程:A*x(:, j)=B(:, j),式中的(:, j)表示B 矩阵的第j 列,返回的结果x 具有与B 矩阵相同的阶数,如果A 是奇异矩阵将给出警告信息.

如果A 矩阵不是方阵,可由以列为基准的Householder 正交分解法分解,这种分解法可以解决在最小二乘法中的欠定方程或超定方程,结果是m ×n 的x 矩阵.m 是A 矩阵的列数,n 是B 矩阵的列数.每个矩阵的列向量最多有k 个非零元素,k 是A 的有效秩.

右除B/A 可由B/A=(A'\B')'左除来实现.

§3.4矩阵乘方

A^P 意思是A 的P 次方.如果A 是一个方阵,P 是一个大于1的整数,则A^P 表示A 的P 次幂,即A 自乘P 次.如果P 不是整数,计算涉及到特征值和特征向量的问题,如已经求得:[V,D]=eig(A),则:

A^P=V*D.^P/V (注:这里的.^表示数组乘方,或点乘方,参见后面的有关介绍)

如果B 是方阵, a 是标量,a^B 就是一个按特征值与特征向量的升幂排列的B 次方程阵. 如果a 和B 都是矩阵,则a^B 是错误的.

§3.5 矩阵的超越函数

在Matlab中解释exp(A)和sqrt(A)时曾涉及到级数运算,此运算定义在A的单个元素上.Matlab可以计算矩阵的超越函数,如矩阵指数、矩阵对数等.

一个超越函数可以作为矩阵函数来解释,例如将“m”加在函数名的后边而成expm(A)和sqrtm(A),当Matlab运行时,有下列三种函数定义:

expm 矩阵指数

logm 矩阵对数

sqrtm 矩阵开方

所列各项可以加在多种m文件中或使用funm.请见应用库中sqrtm.m,1ogm.m,funm.m 文件和命令手册.

§3.6数组运算

数组运算由线性代数的矩阵运算符“*”、“/”、“\”、“^”前加一点来表示,即为“.*”、“./”、“.\”、“.^”.注意没有“.+”、“.-”运算.

§3.6.1数组的加和减

对于数组的加和减运算与矩阵运算相同,所以“+”、“-”既可被矩阵接受又可被数组接受.

§3.6.2数组的乘和除

数组的乘用符号.*表示,如果A与B矩阵具有相同阶数,则A.*B表示A和B单个元素之间的对应相乘.例如x=[1 2 3]; y=[ 4 5 6];

计算z=x.*y

结果z=4 10 18

数组的左除(.\)与数组的右除(./),由读者自行举例加以体会.

§3.6.3 数组乘方

数组乘方用符号.^表示.

例如:键入:

x=[ 1 2 3]

y=[ 4 5 6]

则z=x.^y=[1^4 2^5 3^6]=[1 32 729]

(1) 如指数是个标量,例如x.^2,x同上,则:

z=x.^2=[1^2 2^2 3^2]=[ 1 4 9]

(2) 如底是标量,例如2 .^[x y] ,x、y同上,则:

z=2 .^[x y]=[2^1 2^2 2^3 2^4 2^5 2^6]=[2 4 8 16 32 64] 从此例可以看出Matlab算法的微妙特性,虽然看上去与其它乘方没什么不同,但在2和“.”之间的空格很重要,如果不这样做,解释程序会把“.”看成是2的小数点.Matlab 看到符号“^”时,就会当做矩阵的幂来运算,这种情况就会出错,因为指数矩阵不是方阵.

§3.7 矩阵函数

Matlab的数学能力大部分是从它的矩阵函数派生出来的,其中一部分装入Matlab本身处理中,它从外部的Matlab建立的M文件库中得到,还有一些由个别的用户为其自己的特殊的用途加进去的.其它功能函数在求助程序或命令手册中都可找到.手册中备有为Matlab 提供数学基础的LINPACK和EISPACK软件包,提供了下面四种情况的分解函数或变换函数:

(1)三角分解;(2)正交变换;(3) 特征值变换;(4)奇异值分解.

§3.7.1三角分解

最基本的分解为“LU”分解,矩阵分解为两个基本三角矩阵形成的方阵,三角矩阵有上三角矩阵和下三角矩阵.计算算法用高斯变量消去法.

从lu函数中可以得到分解出的上三角与下三角矩阵,函数inv得到矩阵的逆矩阵,det 得到矩阵的行列式.解线性方程组的结果由方阵的“\”和“/”矩阵除法来得到.例如:

A=[ 1 2 3

4 5 6

7 8 0]

LU分解,用Matlab的多重赋值语句

[L,U]=lu(A)

得出

L =

0.1429 1.0000 0

0.5714 0.5000 1.0000

1.0000 0 0

U =

7.0000 8.0000 0

0 0.8571 3.0000

0 0 4.5000

注:L是下三角矩阵的置换,U是上三角矩阵的正交变换,分解作如下运算,检测计算结果只需计算L*U即可.

求逆由下式给出:x=inv(A)

x =

-1.7778 0.8889 -0.1111

1.5556 -0.7778 0.2222

-0.1111 0.2222 -0.1111

从LU分解得到的行列式的值是精确的,d=det(U)*det(L)的值可由下式给出:d=det(A)

d =

27

直接由三角分解计算行列式:d=det(L)*det(U)

d =

27.0000

为什么两种d的显示格式不一样呢? 当Matlab做det(A)运算时,所有A的元素都是整数,所以结果为整数.但是用LU分解计算d时,L、U的元素是实数,所以Matlab产生的d也是实数.

例如:线性联立方程取b=[ 1

3

5]

解Ax=b方程,用Matlab矩阵除得到

x=A\b

结果x=

0.3333

0.3333

0.0000

由于A=L*U,所以x也可以有以下两个式子计算:y=L\b,x=U\y.得到相同的x值,中间值y为:

y =

5.0000

0.2857

0.0000

Matlab中与此相关的函数还有rcond、chol和rref.其基本算法与LU分解密切相关.chol

函数对正定矩阵进行Cholesky分解,产生一个上三角矩阵,以使R'*R=X.rref用具有部分主元的高斯-约当消去法产生矩阵A的化简梯形形式.虽然计算量很少,但它是很有趣的理论线性代数.为了教学的要求,也包括在Matlab中.

§3.7.2正交变换

“QR”分解用于矩阵的正交-三角分解.它将矩阵分解为实正交矩阵或复酉矩阵与上三角矩阵的积,对方阵和长方阵都很有用.

例如A=[ 1 2 3

4 5 6

7 8 9

10 11 12]

是一个降秩矩阵,中间列是其它二列的平均,我们对它进行QR分解:

[Q,R]=qr(A)

Q =

-0.0776 -0.8331 0.5444 0.0605

-0.3105 -0.4512 -0.7709 0.3251

-0.5433 -0.0694 -0.0913 -0.8317

-0.7762 0.3124 0.3178 0.4461

R =

-12.8841 -14.5916 -16.2992

0 -1.0413 -2.0826

0 0 0.0000

0 0 0

可以验证Q*R就是原来的A矩阵.由R的下三角都给出0,并且R(3,3)=0.0000,说明矩阵R与原来矩阵A都不是满秩的.

下面尝试利用QR分解来求超定和降秩的线性方程组的解.

例如:

b=[ 1

3

5

7]

讨论线性方程组Ax=b,我们可以知道方程组是超定的,采用最小二乘法的最好结果是计算x=A\b.

结果为:

Warning: Rank deficient, rank = 2 tol = 1.4594e-014

x =

0.5000

0.1667

我们得到了缺秩的警告.用QR分解法计算此方程组分二个步骤:

y=Q'*b

x=R\y

求出的y值为

y =

-9.1586

-0.3471

0.0000

0.0000

x的结果为

Warning: Rank deficient, rank = 2 tol = 1.4594e-014

x =

0.5000

0.1667

用A*x来验证计算结果,我们会发现在允许的误差范围内结果等于b.这告诉我们虽然联立方程Ax=b是超定和降秩的,但两种求解方法的结果是一致的.显然x向量的解有无穷多个,而“QR”分解仅仅找出了其中之一.

§3.7.3奇异值分解

在Matlab中三重赋值语句

[U,S,V]=svd(A)

在奇异值分解中产生三个因数:

A=U*S*V '

U矩阵和V矩阵是正交矩阵,S矩阵是对角矩阵,svd(A)函数恰好返回S的对角元素,而且就是A的奇异值(其定义为:矩阵A'*A的特征值的算术平方根).注意到A矩阵可以不是方的矩阵.

奇异值分解可被其它几种函数使用,包括广义逆矩阵pinv(A)、秩rank(A)、欧几里德矩阵范数norm(A,2)和条件数cond(A).

§3.7.4 特征值分解

如果A是n×n矩阵,若λ满足Ax=λx,则称λ为A的特征值,x为相应的特征向量.函数eig(A)返回特征值列向量,如果A是实对称的,特征值为实数.特征值也可能为复数,例如:

A=[ 0 1

-1 0]

eig(A)

产生结果

ans =

0 + 1.0000i

0 - 1.0000i

如果还要求求出特征向量,则可以用eig(A)函数的第二个返回值得到:

[x,D]=eig(A)

D的对角元素是特征值.x的列是相应的特征向量,以使A*x=x*D.

计算特征值的中间结果有两种形式:

Hessenberg形式为hess(A),Schur形式为schur(A).

schur形式用来计算矩阵的超越函数,诸如sqrtm(A)和logm(A).

如果A和B是方阵,函数eig(A,B)返回一个包含一般特征值的向量来解方程Ax=λBx

双赋值获得特征向量

[X,D]=eig(A,B)

产生特征值为对角矩阵D.满秩矩阵X的列相应于特征向量,使A*X=B*X*D,中间结果由qz(A,B)提供.

§3.7.5秩

Matlab计算矩阵A的秩的函数为rank(A),与秩的计算相关的函数还有:rref(A)、orth(A)、null(A)和广义逆矩阵pinv(A)等.

利用rref(A),A的秩为非0行的个数.rref方法是几个定秩算法中最快的一个,但结果上并不可靠和完善.pinv(A)是基于奇异值的算法.该算法消耗时间多,但比较可靠.其它函数的详细用法可利用Help求助.

第四节 Matlab 中的图形

§4.1 二维作图

绘图命令plot 绘制x-y 坐标图;loglog 命令绘制对数坐标图;semilogx 和semilogy 命令绘制半对数坐标图;polor 命令绘制极坐标图.

§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 是由计算机自动绘出的.

1

2

3

4

5

6

01234567

图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 ') 结果见下图.

024********

-1

-0.8

-0.6

-0.4

-0.2

0.2

0.4

0.6

0.8

1 y=sin( x ) 曲线图

x = 0 : 0.05 : 4Pi

图4.1.1.2 y=sin(x)的图形

title

图形标题

xlabel x坐标轴标注

ylabel y坐标轴标注

text 标注数据点

grid 给图形加上网格

hold 保持图形窗口的图形

表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会自动为您选择点的表示方式及颜色.您也可以用不同的符号指定不同的曲线绘制方式.例如:

plot(x,y,'*') 用'*'作为点绘制的图形.

plot(x1,y1,':',x2,y2,'+') 用':'画第一条线,用'+'画第二条线.

线型、点标记和颜色的取值有以下几种:

线型点标记颜色

- 实线. 点y 黄

: 虚线o 小圆圈m 棕色

-. 点划线x 叉子符 c 青色

-- 间断线+ 加号r 红色

* 星号g 绿色

s 方格 b 蓝色

d 菱形w 白色

^ 朝上三角k 黑色

v 朝下三角

> 朝右三角

< 朝左三角

p 五角星

h 六角星

表4.1.3.1线型和颜色控制符

如果你的计算机系统不支持彩色显示,Matlab将把颜色符号解释为线型符号,用不同的线型表示不同的颜色.颜色与线型也可以一起给出,即同时指定曲线的颜色和线型.例如:t=-3.14:0.2:3.14;

x=sin(t); y=cos(t); plot(t,x, '+r',t,y, '-b')

-4

-2024

-1-0.5

0.5

1

图4.1.3.1不同线型、颜色的sin,cos 图形

§4.1.4对数图、极坐标图及条形图

loglog 、semilogx 、semilogy 和polar 的用法和plot 相似.这些命令允许数据在不同的graph paper 上绘制,例如不同的坐标系统.先介绍的fplot 是扩展来的可用于符号作图的函数.

* fplot(fname,lims) 绘制fname 指定的函数的图形.

* polar( theta, rho) 使用相角theta 为极坐标形式绘图,相应半径为rho ,其次可使用grid 命令画出极坐标网格.

* loglog 用log10-log10标度绘图.

* semilogx 用半对数坐标绘图,x 轴是log10,y 是线性的. * semilogy 用半对数坐标绘图,y 轴是log10,x 是线性的. * bar(x) 显示x 向量元素的条形图,bar 不接受多变量. * hist 绘制统计频率直方图.

* histfit(data,nbins) 绘制统计直方图与其正态分布拟合曲线.

fplot 函数的绘制区域为lims=[xmin,xmax],也可以用lims=[xmin,xmax,ymin,ymax]指定y 轴的区域.函数表达式可以是一个函数名,如sin ,tan 等;也可以是带上参数x 的函数表达式,如sin(x),diric(x,10);也可以是一个用方括号括起的函数组,如[sin, cos]. 例1:fplot('sin',[0 4*pi])

例2:fplot('sin(1 ./ x)', [0.01 0.1])

例3:fplot('abs(exp(-j*x*(0:9))*ones(10,1))',[0 2*pi],'-o')

例4:fplot('[sin(x), cos(x) , tan(x)]',[-2*pi 2*pi -2*pi 2*pi]) %%(图4.1.4.1)

-6

-4

-2

2

4

6

-6-4-2

024

610

-410

-2

10

10

2

-10

010

2030

图4.1.4.1 sin,cos,tan 函数图形 图4.1.4.2半对数图

下面介绍的是其它几个作图函数的应用. 例5:半对数坐标绘图

t=0.001:0.002:20;

y=5 + log(t) + t; semilogx(t,y, 'b') hold on semilogx(t,t+5, 'r') %% (图4.1.4.2)

例6:极坐标绘图

t=0:0.01:2*pi;

polar(t,sin(6*t)) %% (图

4.1.4.3)

图4.1.4.3 极坐标绘图 图4.1.4.4正态分布的统计直方图与其正态分布拟合曲线

例7:正态分布图

我们可以用命令normrnd 生成符合正态分布的随机数. normrnd(u,v,m,n)

其中,u 表示生成随机数的期望,v 代表随机数的方差. 运行:

a=normrnd(10,2,10000,1); histfit(a) %% (图4.1.4.4)

我们可以得到正态分布的统计直方图与其正态分布拟合曲线.

例8:比较正态分布(图4.1.4.5(1))与平均分布(图4.1.4.5(2))的分布图:

yn=randn(30000,1); %% 正态分布 x=min(yn) : 0.2 : max(yn); subplot(121) hist(yn, x)

yu=rand(30000,1); %% 平均分布 subplot(122) hist(yu, 25)

-5

05

0500

1000

1500

2000

2500

00.51

200

400

600

800

1000

1200

1400

4.1.4.5(1) 4.1.4.5(2)

图4.1.4.5 正态分布与平均分布的分布图

§4.1.5 子图

在绘图过程中,经常要把几个图形在同一个图形窗口中表现出来,而不是简单地叠加(例如上面的例8).这就用到函数subplot .其调用格式如下:

subplot(m,n,p)

subplot 函数把一个图形窗口分割成m ×n 个子区域,用户可以通过参数p 调用个各子绘图区域进行操作.子绘图区域的编号为按行从左至右编号.

例9:绘制子图

x=0:0.1*pi:2*pi; subplot(2,2,1) plot(x,sin(x),'-*'); title('sin(x)'); subplot(2,2,2) plot(x,cos(x),'--o'); title('cos(x)'); subplot(2,2,3)

plot(x,sin(2*x),'-.*'); title('sin(2x)'); subplot(2,2,4); plot(x,cos(3*x),':d') title('cos(3x)') 得到图形如下:

02468

-1

-0.500.51

sin(x)

02468

-1

-0.5

0.5

1

cos(x)

02468

-1

-0.500.51

sin(2x)

02468

-1

-0.5

0.5

1

cos(3x)

图4.1.5.1子图

§4.1.6 填充图

利用二维绘图函数patch ,我们可绘制填充图.绘制填充图的另一个函数为fill . 下面的例子绘出了函数humps (一个Matlab 演示函数)在指定区域内的函数图形. 例10:用函数patch 绘制填充图

fplot('humps',[0,2],'b') hold on

patch([0.5 0.5:0.02:1 1],[0 humps(0.5:0.02:1) 0],'r'); hold off

title('A region under an interesting function.')

grid

图4.1.6.1填充图

我们还可以用函数fill来绘制类似的填充图.

例11:用函数fill绘制填充图

x=0:pi/60:2*pi;

y=sin(x);

x1=0:pi/60:1;

y1=sin(x1);

plot(x,y,'r');

hold on

fill([x1 1],[y1 0],'g')

图4.1.6.2填充图

§4.2 三维作图

§4.2.1 mesh(Z)语句

mesh(Z)语句可以给出矩阵Z元素的三维消隐图,网络表面由Z坐标点定义,与前面叙述的x-y平面的线格相同,图形由邻近的点连接而成.它可用来显示用其它方式难以输出的包含大量数据的大型矩阵,也可用来绘制Z变量函数.

显示两变量的函数Z=f(x,y),第一步需产生特定的行和列的x-y矩阵.然后计算函数在各网格点上的值.最后用mesh函数输出.

下面我们绘制sin(r)/r函数的图形.建立图形用以下方法:

x=-8:.5:8;

y=x';

x=ones(size(y))*x;

y=y*ones(size(y))';

R=sqrt(x.^2+y.^2)+eps;

z=sin(R)./R;

mesh(z) %% 试运行mesh(x,y,z),看看与mesh(z)有什么不同之处?

各语句的意义是:首先建立行向量x,列向量y;然后按向量的长度建立1-矩阵;用向量乘以产生的1-矩阵,生成网格矩阵,它们的值对应于x-y坐标平面;接下来计算各网格点的半径;最后计算函数值矩阵Z.用mesh函数即可以得到图形.

图4.2.1三维消隐图

第一条语句x的赋值为定义域,在其上估计函数;第三条语句建立一个重复行的x矩阵,第四条语句产生y的响应,第五条语句产生矩阵R(其元素为各网格点到原点的距离).用mesh方法结果如上.

另外,上述命令系列中的前4行可用以下一条命令替代:

[x, y]=meshgrid(-8:0.5:8)

§4.2.2与mesh相关的几个函数

(1) meshc与函数mesh的调用方式相同,只是该函数在mesh的基础上又增加了绘制相应等高线的功能.下面来看一个meshc的例子:

[x,y]=meshgrid([-4:.5:4]);

z=sqrt(x.^2+y.^2);

meshc(z) %% 试运行meshc(x,y,z),看看与meshc(z)有什么不同之处?

我们可以得到图形:

图4.2.2.1 meshc图

地面上的圆圈就是上面图形的等高线.

matlab常用操作命令

matlab常用操作备忘(1)2007-11-30 22:01:06 分类: 北京理工大学 20981 陈罡 帮助朋友做几个数据的卷积的仿真,一用才知道,呵呵,发现对不住偶的导师了。。。好多matlab的关键字和指令都忘记了。特意收集回顾一下: (1)管理命令和函数 addpath :添加目录到MATLAB搜索路径 doc :在Web浏览器上现实HTML文档 help :显示Matlab命令和M文件的在线帮助 helpwin helpdesk :help 兄弟几个 lookfor :在基于Matlab搜索路径的所有M文件中搜索关键字 partialpath:部分路径名 8*) path :所有关于路径名的处理 pathtool :一个不错的窗口路径处理界面 rmpath :删除搜索路径中指定目录 type :显示指定文件的内容 ver :版本信息 version :版本号 web :打开web页 what :列出当前目录吓所有的M文件 Mat文件和 Mex文件 whatsnew :显示readme文件 which :显示文件位置 (2)管理变量和工作区 clear :从内存中删除所有变量,clear x y z是删除某个变量 disp :显示文本或数组内容 length :数组长度(最长维数) load :重新载入变量(从磁盘上) mlock :锁定文件,防止文件被错误删除 munlock :解锁文件 openvar :在数组编辑器中打开变量 pack :整理内存空间 save :保存变量到文件 8*) size :数组维数

who whos :列出内存变量 workspace :显示工作空间窗口 (3)管理命令控制窗口(command窗口) clc :清空命令窗口 echo :禁止或允许显示执行过程 format :设置输出显示格式 home :光标移动到命令窗口左上角 more :设置命令窗口页输出格式 (4)文件和工作环境 cd :改变工作目录 copyfile :复制文件 delete :删除文件和图形对象 diary :把命令窗口的人机交互保存到文件 dir :显示目录 edit :编辑文本文件 fileparts :返回文件的各个部分 fullfile :使用指定部分建立文件全名 inmem :返回内存(伪代码区)的matlab函数名 ls :在unix系统中列出目录(win中亦可) matlabroot :根目录 mkdir :新建目录 open :打开文件 pwd :显示当前目录 tempdir :返回系统临时目录的名字 tempname :随机给出一个临时字符串(可用作文件名) ! :直接调用操作系统command命令 (5)启动和推出matlab matlabrc :Matlab的启动M文件 exit quit :退出Matlab startup :运行matlab启动文件 (6)程序设计 builtin :从可重载方法中调用内置函数 eval :执行包含可执行表达式的字符串

matlab函数用法

A a abs 绝对值、模、字符的ASCII码值 acos 反余弦 acosh 反双曲余弦 acot 反余切 acoth 反双曲余切 acsc 反余割 acsch 反双曲余割 align 启动图形对象几何位置排列工具 all 所有元素非零为真 angle 相角 ans 表达式计算结果的缺省变量名 any 所有元素非全零为真 area 面域图 argnames 函数M文件宗量名 asec 反正割 asech 反双曲正割 asin 反正弦 asinh 反双曲正弦 assignin 向变量赋值 atan 反正切 atan2 四象限反正切 atanh 反双曲正切 autumn 红黄调秋色图阵 axes 创建轴对象的低层指令 axis 控制轴刻度和风格的高层指令 B b bar 二维直方图 bar3 三维直方图 bar3h 三维水平直方图 barh 二维水平直方图 base2dec X进制转换为十进制 bin2dec 二进制转换为十进制 blanks 创建空格串 bone 蓝色调黑白色图阵 box 框状坐标轴 break while 或for 环中断指令 brighten 亮度控制 C c

capture (3版以前)捕获当前图形 cart2pol 直角坐标变为极或柱坐标 cart2sph 直角坐标变为球坐标 cat 串接成高维数组 caxis 色标尺刻度 cd 指定当前目录 cdedit 启动用户菜单、控件回调函数设计工具cdf2rdf 复数特征值对角阵转为实数块对角阵ceil 向正无穷取整 cell 创建元胞数组 cell2struct 元胞数组转换为构架数组 celldisp 显示元胞数组内容 cellplot 元胞数组内部结构图示 char 把数值、符号、内联类转换为字符对象chi2cdf 分布累计概率函数 chi2inv 分布逆累计概率函数 chi2pdf 分布概率密度函数 chi2rnd 分布随机数发生器 chol Cholesky分解 clabel 等位线标识 cla 清除当前轴 class 获知对象类别或创建对象 clc 清除指令窗 clear 清除内存变量和函数 clf 清除图对象 clock 时钟 colorcube 三浓淡多彩交叉色图矩阵 colordef 设置色彩缺省值 colormap 色图 colspace 列空间的基 close 关闭指定窗口 colperm 列排序置换向量 comet 彗星状轨迹图 comet3 三维彗星轨迹图 compass 射线图 compose 求复合函数 cond (逆)条件数 condeig 计算特征值、特征向量同时给出条件数condest 范-1条件数估计 conj 复数共轭 contour 等位线 contourf 填色等位线 contour3 三维等位线

实验1熟悉matlab环境和基本操作

实验1 熟悉Matlb环境及基本操作 实验目的: 1.熟悉Matlab环境,掌握Matlab的主要窗口及功能; 2.学会Matlab的帮助使用; 3.掌握向量、矩阵的定义、生成方法和基本运算; 4.掌握Matlab的基本符号运算; 5.掌握Matlab中的二维图形的绘制和控制。 实验内容: 1.启动Matlab,说明主窗口、命令窗口、当前目录窗口、工作空间窗口、历史窗口、图形窗口、M文件编辑器窗口的功能。 2.实例操作Matlab的帮助使用。 3.实例操作向量、矩阵的定义、生成方法和基本运算。 4.实例操作Matlab的基本符号运算。 5.实例操作Matlab中的二维图形绘制和控制。 实验仪器与软件: 1.CPU主频在2GHz以上,内存在512Mb以上的PC; 2.Matlab 7及以上版本。 实验讲评: 实验成绩: 评阅教师: 年月日

实验1 熟悉Matlab环境及基本操作 一、Matlab环境及主要窗口的功能 运行Matlab安装目录下的matlab.exe文件可启动Matlab环境,其默认布局如下图: 其中, 1.主窗口的功能是:主窗口不能进行任何计算任务操作,只用来进行一些整体的环境参数设置,它主要对6个下拉菜单的各项和10个按钮逐一解脱。 2.命令窗口的功能是:对MATLAB搜索路径中的每一个M文件的注释区的第一行进行扫描,一旦发现此行中含有所查询的字符串,则将该函数名及第一行注释全部显示在屏幕上。 3. 历史窗口的功能是:历史窗口显示命令窗口中的所有执行过的命令,一方面可以查看曾经执行过的命令,另一方面也可以重复利用原来输入的命令行,可以从命令窗口中直接通过双击某个命令行来执行该命令,

matlab基本用法

目录: 一、说明 二、数据类型及基本输入输出 三、流程控制 四、循环 五、数组、数组运算和矩阵运算 六、M脚本文件和M函数文件、函数句柄 七、文件 八、数据和函数的可视化 一、说明 matlab作为数学软件有其强大的图形用户界面操作、数据和函数的可视化和数值计算功能,且自带很多现有的函数和工具包。而本文只涉及一些比较系统的基本操作,在最后附带介绍一些基本的数据和函数的可视化命令。建议要用的时候再利用matlab自带的帮助文档来搜索有用的函数和工具包。matlab的函数和命令都是比较人性化的,比如想要搜索读取fits文件的函数,搜索fits就能够搜到fitsread函数;需要将读出的fits数据重新做图,搜索image就可以找到imagesc函数。从书和别人的文档都只能学到有限的比较系统的操作,看帮助文档能发现更多的东西并整理出自己的使用方法。 二、数据类型及基本输入输出 1、数据类型,声明及赋初值 matlab中存储的数据类型(class)有以下几种: 而实际上matlab不需要对变量做声明,当它发现一个新的变量名时,将默认将其为双精度浮点类型(double)并分配内存空间。(这比C和 Fortran方便了许多,但在完成大运算量的程序时就显得浪费存储空间了) 当需要把变量a从double转为其他类型的时候,比如要转为int16型,可以使用以下命令:a=int16(a) 当需要创建一个字符型变量x并对其赋初值时,用以下格式:x='字符串'; 注意: (1)在命令后加“;”表示不在command window中显示结果,而对上例来说如果不加“;”则会显示所赋字符串内容。 (2)所有的命令必须在英文输入状态下,如果使用中文输入状态下全角的“;”,将被处理为非法字符。其中logical,cell和structure为逻辑,元胞和构架数组类型,将在后面的数组部分提到;function handle为函数句柄类型,将在后面的“M脚本文件和M函数文件、函数句柄”部分提到;java类供JAVA API应用程序接口使用,本文不进行说明。最后说明一下,matlab也支持复数操作,赋值的时候直接输入即可,比如:a=1+2i; 2、基本输入输出 输入:v=input('message') %将用户输入的内容赋给变量v v=input('message','s') %将用户输入的内容作为字符串赋给变量v keyboard %用户可以从键盘输入任意多个指令 v=yesinput('prompt',default,possib) %prompt为文字提示,default为缺省设置“值”,possib为设置值的范围。

实验一 MATLAB基本操作及运算

实验一 MATLAB 基本操作及运算 一、 实验目的 二、 实验的设备及条件 三、 实验内容 1、 建立以下标量: 1) a=3 2) ,(j 为虚数单位) 3) c=3/2πj e 2、 建立以下向量: 1) Vb= 2.71382882????????-???? 2) Vc=[4 3.8 … -3.8 -4 ] (向量中的数值从4到-4,步长为-0.2) 3、 建立以下矩阵: 1) 3 333Ma ????=?????? Ma 为一个7×7的矩阵,其元素全为3. 2) 11191212921020100Mb ??????=??????

Mb 为一个10×10的矩阵. 3) 114525173238Mc ????=?????? 4、 使用题1中的变量计算下列等式的x,y,z 的值: 1) ((15)/6)111a x e --=+ 2) 2x π= 3) 3ln([()()]sin(/3))x b c b c a π=+-R ,其中R 表示复数实部。 5、 求解函数值22/(2.25)ct y e -=,其中c 取值见题1,t 的取值范围为题2中行 向量Vc 。 6、 使用题1和题3中所产生的标量和矩阵计算等式 1()()T Mx a Mc Mc Mc -=?? 其中*为矩阵所对应行列式的值,参考det 。 7、 函数的使用和矩阵的访问。 1) 计算矩阵Mb 每一列的和,结果应为行向量形式。 2) 计算整个矩阵Mb 的平均值。 3) 用向量[1 1…1] 替换Mb 的最上一行的值 4) 将矩阵Mb 的第2~5行,第3到9列的元素所构成的矩阵赋值给矩阵SubMb 。 5) 删除矩阵Mb 的第一行; 6) 使用函数rand 产生一个1×10的向量r ,并将r 中值小于0.5的元素设置为0。 8、 已知CellA (1, 1)=‘中国’,CellA (1,2)=‘北京’,CellA (2,1)是一个3乘3的单位阵,CellA (2, 2)=[1 2 3],试用MATLAB 创建一个2×2的细胞数组CellA 。 9、 已知结构数组student 中信息包含有姓名,学号,性别,年龄和班级,试用MATLAB 创建相应的结构数组student 。该数组包含有从自己学号开始连续5个同学的信息(如果学号在你后面的同学不足5个则往前排序),创建完成后查看自己的信息。

matlab经典习题及解答

第1章 MATLAB概论 1.1与其他计算机语言相比较,MATLAB语言突出的特点是什么? MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 1.2 MATLAB系统由那些部分组成? MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。 1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。 1.5 如何启动M文件编辑/调试器? 在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。 1.6 存储在工作空间中的数组能编辑吗?如何操作? 存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途? 页脚内容1

命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。 1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别? 当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file 菜单中的Set Path菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。 1.9 在MATLAB中有几种获得帮助的途径? 在MATLAB中有多种获得帮助的途径: (1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器; (2)help命令:在命令窗口键入“help”命令可以列出帮助主题,键入“help 函数名”可以得到指定函数的在线帮助信息; (3)lookfor命令:在命令窗口键入“lookfor 关键词”可以搜索出一系列与给定关键词相关的命令和函数 (4)模糊查询:输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数。 注意:lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息。 第2章MATLAB矩阵运算基础 页脚内容2

MATLAB文件各种操作方法(全)

1.1 文件的打开和关闭 1.1.1 文件的打开 fopen ('filename', 'mode') mode格式有: ‘r’:只读方式打开文件(默认的方式),该文件必须已存在。 ‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。 ‘w’:打开后写入数据。该文件已存在则更新;不存在则创建。 ‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。 ‘a’:在打开的文件末端添加数据。文件不存在则创建。 ‘a+’:打开文件后,先读入数据再添加数据。文件不存在则创建。 如果rt表示该文件以文本方式打开,如果添加的是“b”,则以二进制格式打开,这也是fopen函数默认的打开方式。 Fopen函数两个返回值: 1、一个是返回一个文件标识(file Identifier),它会作为参数被传入其他对文件进 行读写操作的命令,通常是一个非负的整数,可用此标识来对此文件进行各种处理。 (如果返回的文件标识是–1,则代表fopen无法打开文件,其原因可能是文件不 存在,或是用户无法打开此文件权限); 2、另一个返回值就是message,用于返回无法打开文件的原因; 例:1-1 [f,message]=fopen('fileexam1', 'r') if f==-1 disp(message); %显示错误信息 end (若文件fileexam1不存在,则显示如下信息。 Cannot open file.existence?permissions?memory?) 例:1-2 [f,message]=fopen('fileexam2', 'r'); if f==-1 disp (message); %显示错误信息 else disp(f); end 若文件fileexam2存在,则返回f值。 1.1.2文件的关闭 Fclose(f) F为打开文件的标志,若若fclose函数返回值为0,则表示成功关闭f标志的文件;若返回值为–1,则表示无法成功关闭该文件。(打开和关闭文件比较耗时,最好不要在循环体内使用文件) 若要一次关闭打开的所有文件,可以使用下面的命令:fclose all

实验1 MATLAB使用方法和程序设计

实验1 MATLAB 使用方法和程序设计 一、实验目的 1、掌握MATLAB 软件使用的基本方法。 2、熟悉MATLAB 的数据表示、基本运算和程序控制语句。 3、熟悉MATLAB 绘图命令及基本绘图控制。 4、熟悉MATLAB 程序设计的基本方法。 二、实验内容 1.帮助命令 使用Help 命令,查找sqrt (开方)函数的使用方法。 2、矩阵运算 (1)矩阵乘法 已知A=[1 2;3 4];B=[5 5;7 8]; 求A^2*B 。 (2) 矩阵除法 已知A=[1 2 3;4 5 6;7 8 9];B=[1 0 0;0 2 0;0 0 3]; 求A\B,A/B 。 (3) 矩阵的转置及共轭转置 已知A=[5+i ,2-i ,1;6*i ,4,9-i];求A.’,A ’ 。 (4)使用冒号选出指定元素 已知A=[1 2 3 ; 4 5 6 ; 7 8 9]; 求A 中第3列前2个元素;A 中所有列第2,3行的元素。 (5)方括号[] 用magic 函数生成一个4阶魔术矩阵,删除该矩阵的第四列。 3、多项式 (1)求多项式p(x)=x 3-2x-4的根。 (2)求 f (x) = (cos x)2 的一次导数。 (3)求微分方程 的通解,并验证。 4、基本绘图命令 (1)绘制余弦曲线cost =y , ]2,0[π∈t 。 (2)在同一坐标系中绘制余弦曲线 0.25)-cos(t =y 和正弦曲线 )5.0sin(-=t y ,]2,0[π∈t (3)用plot3函数绘制三维螺线: 22x dy xy xe dx -+= sin()cos()x t y t z t =??=??=?( 0 < t < 20 )

实验一 Matlab基本操作(2016)

实验一 MATLAB 基本操作 一、实验目的 1. 学习和掌握MA TLAB 的基本操作方法 2. 掌握命令窗口的使用 3. 熟悉MATLAB 的数据表示、基本运算 二、实验内容和要求 1. 实验内容 1) 练习MATLAB7.0或以上版本 2) 练习矩阵运算与数组运算 2. 实验要求 1) 每位学生独立完成,交实验报告 2) 禁止玩游戏! 三、实验主要软件平台 装有MATLAB7.0或以上的PC 机一台 四、实验方法、步骤及结果测试 1. 实验方法:上机练习。 2. 实验步骤: 1) 开启PC ,进入MA TLAB 。 2) 使用帮助命令,查找sqrt 函数的使用方法 答: help sqrt 3) 矩阵、数组运算 a) 已知 ??????????=987654321A ,???? ??????=963852741B ,求)2()(A B B A -?+ 答: A=[1, 2, 3; 4, 5, 6; 7, 8, 9]; B=[1, 4, 7; 2, 5, 8; 3, 6, 9]; (A+B)*(2*B-A) b) 已知?? ????-=33.1x ,??????=π24y ,求T xy ,y x T c) 已知??????????=987654321A ,???? ??????=300020001B ,求A/B, A\B. d) 已知???? ??????=987654321A ,求:(1) A 中第三列前两个元素;(2) A 中所有第二行元素;(3) A 中四个角上的元素;(4) 交换A 的第1、3列。(5) 交换A 的第1、2行。(6) 删除A 的第3列。

e) 已知[]321=x ,[]654=y ,求:y x *.,y x /.,y x \.,y x .^, 2.^x ,x .^2。 f) 给出x=1,2,…,7时,x x sin 的值。 3)常用的数学函数 a )随机产生一个3x3的矩阵A ,求:(1) A 每一行的最大、最小值,以及最大、最小值所在的列;(2) A 每一列的最大、最小值,以及最大、最小值所在的行;(3) 整个矩阵的最大、最小值;(4) 每行元素之和;(5) 每列元素之和;(6) 每行元素之积;(7) 每列元素之积。 b) 随机产生两个10个元素的向量x ,y 。(1) 求x 的平均值、标准方差。(2) 求x ,y 的相关系数。(3)对x 排序,并记录排序后元素在原向量中的位置。 4) 字符串操作函数 建立一个字符串向量(如‘ABc123d4e56Fg9’),然后对该向量做如下处理: (1) 取第1~5个字符组成的子字符串。 (2) 将字符串倒过来重新排列。 (3) 将字符串中的小写字母变成相应的大写字母,其余字符不变。 (4) 统计字符串中小写字母的个数。

MATLAB常用指令

MATLAB常用指令 1.常用命令-->管理命令和函数 addpath 添加目录到MATLAB搜索路径 doc 在Web浏览器上现实HTML文档 help 显示Matlab命令和M文件的在线帮助 helpwin helpdesk help lookfor 在基于Matlab搜索路径的所有M文件中搜索关键字partialpath 部分路径名 path 所有关于路径名的处理 pathtool 一个不错的窗口路径处理界面 rmpath 删除搜索路径中指定目录 type 显示指定文件的内容 ver 版本信息 version 版本号 web 打开web页 what 列出当前目录吓所有的M文件Mat文件和Mex文件whatsnew 显示readme文件 which 显示文件位置 (返回) 2.常用命令-->管理变量和工作区(输入输出、内存管理等) clear 从内存中删除 disp 显示文本或数组内容 length 数组长度(最长维数) load 重新载入变量(从磁盘上) mlock 锁定文件,防止文件被错误删除 munlock 解锁文件 openvar 在数组编辑器中打开变量 pack 整理内存空间 save 保存变量到文件8*) size 数组维数 who 列出内存变量 whos 列出内存变量,同时显示变量维数 workspace 显示工作空间窗口 (返回) 3.常用命令-->管理命令控制窗口(command窗口) clc 清空命令窗口 echo 禁止或允许显示执行过程 format 设置输出显示格式 home 光标移动到命令窗口左上角 more 设置命令窗口页输出格式 (返回)

MATLAB中plot的用法

MATLAB中plot的用法(2011-05-17 22:10:50)转载▼ 标签:杂谈 第五讲计算结果的可视化 本节介绍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*:') 则得图5.1.2 图5.1.2 使用不同标记的plot 函数绘制的正弦曲线 5.1.2 图形修饰 MATLAB 软件为用户提供了一些特殊的图形函数,用于修饰已经绘制好的图形。 表5.1.2 图形修饰函数表

matlab的常用指令及其含义

matlab的常用指令及其含义最佳答案matlab常用命令速查 sizeabs 绝对值、模、字符的ASCII码值 acos 反余弦 acosh 反双曲余弦 acot 反余切 acoth 反双曲余切 acsc 反余割 acsch 反双曲余割 align 启动图形对象几何位置排列工具 all 所有元素非零为真 angle 相角 ans 表达式计算结果的缺省变量名 any 所有元素非全零为真 area 面域图 argnames 函数M文件宗量名 asec 反正割 asech 反双曲正割 asin 反正弦 asinh 反双曲正弦 assignin 向变量赋值 atan 反正切

atan2 四象限反正切 atanh 反双曲正切 autumn 红黄调秋色图阵 axes 创建轴对象的低层指令axis 控制轴刻度和风格的高层指令 B b bar 二维直方图 bar3 三维直方图 bar3h 三维水平直方图 barh 二维水平直方图 base2dec X进制转换为十进制bin2dec 二进制转换为十进制blanks 创建空格串 bone 蓝色调黑白色图阵 box 框状坐标轴 break while 或for 环中断指令brighten 亮度控制 C c

capture (3版以前)捕获当前图形 cart2pol 直角坐标变为极或柱坐标 cart2sph 直角坐标变为球坐标 cat 串接成高维数组 caxis 色标尺刻度 cd 指定当前目录 cdedit 启动用户菜单、控件回调函数设计工具cdf2rdf 复数特征值对角阵转为实数块对角阵ceil 向正无穷取整 cell 创建元胞数组 cell2struct 元胞数组转换为构架数组celldisp 显示元胞数组内容 cellplot 元胞数组内部结构图示 char 把数值、符号、内联类转换为字符对象chi2cdf 分布累计概率函数 chi2inv 分布逆累计概率函数 chi2pdf 分布概率密度函数 chi2rnd 分布随机数发生器 chol Cholesky分解 clabel 等位线标识 cla 清除当前轴 class 获知对象类别或创建对象

2matlab基本使用方法

(12+2*(7-4))/3^2 ans = 2 format short;pi ans = 3.1416 format long;pi ans = 3.141592653589793 format rat;pi ans = 355/113 format long;vpa(pi,50) ans = 3.141592653589793115997963468544185161590576171875 who Your variables are: ans a=randn(4) a = -0.1241 0.6715 0.4889 0.2939 1.4897 -1.2075 1.0347 -0.7873 1.4090 0.7172 0.7269 0.8884 1.4172 1.6302 -0.3034 -1.1471 whos Name Size Bytes Class Attributes a 4x4 128 double ans 1x1 8 double who Your variables are: a ans what M-files in the current directory E:\Matlab2010\智能仿生算法\遗传算法TSP_SuiJiSuanFa ZhuanJiaXiTongP167 fun_SuiJiSuanFa TSPrun_SuiJiSuanFa f fun_SuiJiSuanFa0

ZhuanJiaXiTongP162 f1 fun_SuiJiSuanFa2 MAT-files in the current directory E:\Matlab2010\智能仿生算法\遗传算法 my27city dir . ZhuanJiaXiTongP162.asv f.m my27city.mat .. ZhuanJiaXiTongP162.m f1.m temp 3d.asv ZhuanJiaXiTongP167.asv fun_SuiJiSuanFa.asv temp.prj 3d.m ZhuanJiaXiTongP167.m fun_SuiJiSuanFa.m zia03836 New Folder bou2_4l.shp fun_SuiJiSuanFa0.asv TSP_SuiJiSuanFa.m da fun_SuiJiSuanFa0.m TSPrun_SuiJiSuanFa.m da.prj fun_SuiJiSuanFa2.m type 3d clf; x=-3:0.1:3; y=-3:0.1:3; [X Y]=meshgrid(x,y); Z=f(X,Y)+4; mesh(X,Y,Z); hold on; plot3(-0.7,-1,f(-0.7,-1)+4,'g*'); contour(X,Y,Z,'r'); which rand built-in (D:\Program Files\MATLAB\R2010a\toolbox\matlab\randfun\rand) which 3d.m E:\Matlab2010\智能仿生算法\遗传算法\3d.m help exist EXIST Check if variables or functions are defined. EXIST('A') returns: 0 if A does not exist 1 if A is a variable in the workspace 2 if A is an M-file on MATLAB's search path. It also returns 2 when A is the full pathname to a file or when A is the name of an ordinary file on MATLAB's search path 3 if A is a MEX-file on MATLAB's search path 4 if A is a MDL-file on MATLAB's search path 5 if A is a built-in MATLAB function 6 if A is a P-file on MATLAB's search path 7 if A is a directory 8 if A is a Java class

MATLAB常用命令速查

在这里我只给出函数的名字及其功能,至于其格式的调用方法,请参阅MATLAB 的在线帮助,只需要在命令窗口输入 help funname。制作本表主要是为了便于应用时查阅。限于个人水平和资料,错误在所难免,望批评指正,在下不胜感激! MATLAB 中的常用函数 MATLAB 中的函数 函数名函数功能工具箱syms 申明符号变量symbolic vpa() 直接对符号求值symbolic simple() 符号表达式的化简,还可以调用 sincos(),numden(),expand()等具体化简方 法,factor()函数还可以用于整数的质因数分解symbolic subs() 符号表达式的变量替换symbolic latex() 将符号表达式转换成LATEX排版语言支持的字符串symbolic floor() 该函数可以对数值进行取整运算,相应的取整函数还有 round(),fix(),ceil()等,但是它们的涵义是不同的MATLAB rat() 将矩阵的各个数用简分式表示MATLAB rem() 将矩阵的各个数值取余数MATLAB gcd() 求两个整数的大公约数,lcm()求小公倍数symbolic isprime() 判定矩阵内各个整数是否为质数symbolic for for循坏结构,和end语句共同构成循坏,break语句可以终止本级循坏MATLAB while while循坏结构MATLAB if 条件转移语句,可以和elseif,else语句连用MATLAB switch 开关结构,和case及otherwise语句连用MATLAB try 试探语句,可以和catch连用MATLAB function 函数引导语句MATLAB inline inline函数,可以定义直接取值的函数MATLAB @ 匿名函数,功能更强于inline函数,是MATLAB7.0提出的新函数MATLAB plot() 二维直角坐标系曲线绘制MATLAB set() MATLAB对象属性设定函数MATLAB get() MATLAB对象属性提取函数MATLAB

matlab软件的使用方法

MATLAB 软件使用简介 默认分类2007-03-15 21:26:49 阅读4106 评论8 字号:大中小订阅 MATLAB 软件使用简介 MATLAB 是一个功能强大的常用数学软件, 它不但可以解决数学中的数值计算问题, 还可以解决符号演算问题, 并且能够方便地绘出各种函数图形。MATLAB自1984年由美国的MathWorks公司推向市场以来,历经十几年的发展和竞争,现已成为国际最优秀的科技应用软件之一。这里主要以适用于Windows操作系统的MATLAB5.3版本向读者介绍MATLAB 的使用命令和内容。 一、MATLAB 的进入/退出 MA TLAB 的安装成功后, 系统会在Windows【开始】菜单的【程序】子菜单中加入启动MATLAB命令的图标, 用鼠标单击它就可以启动MATLAB系统,见图2.1。 图2.1 启动MA TLAB 启动MATLAB后, 屏幕上出现MATLAB命令窗口: 图2.2 MA TLAB命令窗口 图2.2的空白区域是MATLAB 的工作区(命令输入区), 在此可输入和执行命令。 退出MATLAB系统像关闭Word文件一样, 只要用鼠标点击MATLAB系统集成界面右上角的关闭按钮即可。 二、MATLAB 操作的注意事项 l 在MA TLAB工作区输入MATLAB命令后, 还须按下Enter键, MA TLAB才能执行你输入的MA TLAB命令, 否则MA TLAB不执行你的命令。 l MATLAB 是区分字母大小写的。 l 一般,每输入一个命令并按下Enter键, 计算机就会显示此次输入的执行结果。(以下用↙表示回车)。如果用户不想计算机显示此次输入的结果,只要在所输入命令的后面再加上一个分号“;”即可以达到目的。如: x= 2 + 3 ↙x=5 x = 2 + 3 ; ↙不显示结果5 l 在MA TLAB工作区如果一个表达式一行写不下,可以用在此行结尾处键入三个英文句号的方法达到换行的目的。如: q=5^6+sin(pi)+exp(3)+(1+2+3+4+5)/sin(x)… -5x+1/2-567/(x+y) l MATLAB 可以输入字母、汉字,但是标点符号必须在英文状态下书写。 l MATLAB 中不需要专门定义变量的类型,系统可以自动根据表达式的值或输入的值

matlab基本使用方法

1-1、基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可。例如:>> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上。小提示: ">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。 我们也可将上述运算式的结果设定给另一个变数x: x = (5*2+1.3-0.8)*10^2/25 x = 42 此时MATLAB会直接显示x的值。由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。 小提示: MATLAB将所有变数均存成double的形式,所以不需经过变数宣告(Variable declaration)。MATLAB同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使用者一一指定.这些功能使的MATLAB易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。 若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例: y = sin(10)*exp(-0.3*4^2); 若要显示变数y的值,直接键入y即可: >>y y =-0.0045 在上例中,sin是正弦函数,exp是指数函数,这些都是MATLAB常用到的数学函数。 下表即为MATLAB常用的基本数学函数及三角函数: 小整理:MATLAB常用的基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle) sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数 ceil(x):天花板函数,即加入正小数至最近整数 rat(x):将实数x化为分数表示 rats(x):将实数x化为多项分数展开 sign(x):符号函数 (Signum function)。 当x<0时,sign(x)=-1; 当x=0时,sign(x)=0; 当x>0时,sign(x)=1。 > 小整理:MATLAB常用的三角函数 sin(x):正弦函数 cos(x):馀弦函数 tan(x):正切函数

Matlab figure 基本操作

Matlab figure基本操作 set(gcf,'Position',[300 300 700 220]); %调整Figure位置和大小。前两个为离屏幕左下角的X,Y距离,后两个值为Figure窗口的宽和高 set(gca,'Position',[.05 .1 .9 .8]); %调整绘图范围(比例关系)。0.05+0.9为横向比例,最大为1;0.1+0.8为纵向比例。0.05和0.1为距离Figure左下角的X,Y距离 figure_FontSize=12; set(gca,'FontSize',figure_FontSize,'FontName','Arial'); xlabel('Distance (m)','FontSize',figure_FontSize,'fontweight','b','FontName','Arial'); ylabel('Thickness (m)','FontSize',figure_FontSize,'fontweight','b','FontName','Arial'); box off; %关闭上和右侧刻度线 grid on; %添加网格线 xkd=[10 20 30]; %定义坐标刻度数量 ykd=[100 200 300]; xkd_label=[1 3 5]; %更改刻度 ykd_label=[100 200 300]; set(gca,'xtick',xkd); set(gca,'xticklabel',xkd_label); set(gca,'ytick',ykd); set(gca,'yticklabel',ykd_label); set(gca,'xscale','log'); %改为对数坐标

matlab常用命令

一、MATLAB常用的基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle) sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数 ceil(x):天花板函数,即加入正小数至最近整数rat(x):将实数x化为分数表示 rats(x):将实数x化为多项分数展开 sign(x):符号函数 (Signum function)。 当x<0时,sign(x)=-1; 当x=0时,sign(x)=0; 当x>0时,sign(x)=1。 rem(x,y):求x除以y的馀数 gcd(x,y):整数x和y的最大公因数

lcm(x,y):整数x和y的最小公倍数exp(x):自然指数 pow2(x):2的指数 log(x):以e为底的对数,即自然对数或log2(x):以2为底的对数 log10(x):以10为底的对数 二、MATLAB常用的三角函数 sin(x):正弦函数 cos(x):馀弦函数 tan(x):正切函数 asin(x):反正弦函数 acos(x):反馀弦函数 atan(x):反正切函数 atan2(x,y):四象限的反正切函数 sinh(x):超越正弦函数 cosh(x):超越馀弦函数 tanh(x):超越正切函数 asinh(x):反超越正弦函数 acosh(x):反超越馀弦函数 atanh(x):反超越正切函数

相关文档
最新文档