MATLAB使基础Word文档格式.docx
《MATLAB使基础Word文档格式.docx》由会员分享,可在线阅读,更多相关《MATLAB使基础Word文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
【注】几个特殊常量:
ans(默认变量名)pi(圆周率)eps(计算机最小数)
inf(无穷大)NaN(不定量)i,j(虚数单位)
MATLAB可以直接识别复数,例如:
2+4i,2-3j等。
2.运算符
(1)算术运算符:
+、-、*、/(右除)、\(左除)、^(幂)
(2)关系运算符:
<
、<
=、>
、>
=、==、~=
(3)逻辑运算符:
&
(与)、|(或)、~(非)(非零元素对应1)
3.变量、函数、表达式
(1)变量:
MATLAB变量名由字母、数字和下划线组成(必须以字母开头),最多含31个字符,区分大小写。
有以下特殊变量:
(2)函数:
MATLAB提供了大量的库函数,函数名一般由小写字母组成。
按照用法MATLAB函数可分为三种:
标量函数、向量函数和矩阵函数。
(3)表达式:
由常量、变量、函数、运算符、圆括号所组成的有效运算式。
表达式运算规则是:
优先级由高到低为方幂->
乘除->
加减;
括号是由里到外;
同级别从左至右。
4.语句(命令)
一般形式:
[变量=]表达式(若缺省“变量=”,则系统默认ans为变量名)。
5.M-文件(即程序文件,包括脚本M-文件和函数M-文件)
6.其它符号:
…续行符;
%注释符;
,(或;
)显示(或不显示)语句执行结果。
§
1.矩阵及其运算
MATLAB的主要数据对象是矩阵,标量、数组和向量都是它的特例;
MATLAB最基本的功能是进行矩阵运算,包括通常的数值计算、点运算、关系运算和逻辑运算等。
一、矩阵的输入
在MATLAB中,矩阵可有不同的输入方式,并且不用事先描述矩阵的类型和维数,它们由矩阵输入的格式和内容决定。
1.矩阵的直接输入
按元素的排列顺序直接输入,所有元素用方括号“[]”括住;
同行元素用逗号或空格分隔,不同行元素用分号或回车分开。
例1.>
A=[1,2,3;
4,5,6]或>
A=[123;
456]或>
A=[123
A=456](回车)
123
456
【注】
若不指定输出变量,则系统默认ans为变量名;
利用下标,比如A(i,j),可以访问矩阵元素(例如,>
a=A(2,1),输出a=4)。
2.矩阵的函数生成
[]空矩阵zeros(m,n)m×
n零矩阵
ones(m,n)m×
n1矩阵eye(m,n)m×
n单位矩阵
rand(m,n)m×
n(0,1)均匀分布随机阵
randn(m,n)m×
n(0,1)标准正态分布随机矩阵
例2.>
z=zeros(2,3),u=ones(3)
z=u=
0.00000.00000.00001.00001.00001.0000
1.00001.00001.0000
例3.>
e=eye(3,4),x=rand(1,3)
e=
1.00000.00000.00000.0000
0.00001.00000.00000.0000
0.00000.00001.00000.0000
x=
0.23110.89130.0185
3.利用M-文件生成矩阵
例4.现有一M-文件gena.m,其内容包含一行MATLAB语句:
A=[123;
456]
在MATLAB命令窗口中输入命令(运行M-文件):
gena(回车),则生成矩阵
A=
123
456
4.载入外部数据文件生成矩阵(load,fread)
外部文件可以是MATLAB环境下用save命令保存的(二进制)数据文件,也可是包含数值数据的文本文件(所包含数据必须按矩阵格式排列)。
例5.现有一文本文件fen.dat,其内容包含二行文本(矩阵元素):
1357
2468
在MATLAB命令窗口中输入命令:
loadfen.dat(回车),则生成矩阵
fen=
二、向量(数组)的输入
向量(一维数组)可以看成一行或一列的矩阵,但是在概念上又有些不同。
1.作为矩阵输入
例6.>
A=[1,2,3];
%(行向量)
>
B=[1;
2;
3];
%(列向量)
C=rand(1,4);
%(利用矩阵生成函数)
2.行向量的特殊输入方式
(1)由冒号a:
d:
b生成等差数组:
(从a到b公差为d(默认1)的等差数组)
(2)由函数linspace(a,b,n)生成等差数组:
(从a到b共n(默认100)个数值)
例7.>
A=1:
5;
%等差数组A=12345(从1到5公差为1(缺省))
B=1:
2:
7;
%等差数组B=1357(从1到7公差为2)
C=5:
-2:
-1;
%等差数组C=531-1(从5到-1公差为-2)
linspace(0,1,4);
%等差数组,ans=00.33330.66671.0
x=linspace(0,1);
%等差数组,从0到1共100个数值
%>
logspace(0,1,4);
%等比数组,ans=1.02.15444.641610.0
x=logspace(0,1);
%等比数组,从100到101共50个数值
三、矩阵的裁剪、拼接与修改
1.矩阵的裁剪
在MATLAB中,矩阵的元素可用其行标、列标表示。
从一个矩阵中取出若干行(列)构成新矩阵称为裁剪,其中冒号“:
”的使用非常重要。
例8.>
A=[1234;
5678;
9101112];
%定义矩阵A
A(3,:
)%提取A的第3行,ans=[9101112]
A(:
2)%提取A的第2列,ans=[2610]’
X=A(2:
3,[1,3,4])%提取A的第2,3行,1,3,4列,X=[578;
91112]
Y=A(:
)%将A所有元素展成一列向量Y=[159261037114812]’
2.矩阵的拼接
在MATLAB中,可按照分块矩阵思想,由小矩阵拼接组合成大矩阵,但应注意所有小矩阵维数应当相容。
例9.>
B=[A(2,:
);
zeros(2,1),eye(2,3)]%由A的第2行,2行1列零向量及
B=5678%2行3列单位阵拼接成3行4列
0100%大矩阵E
0010
3.矩阵的编辑修改
在MATLAB中,通过对矩阵的部分元素(子矩阵)重新赋值,可以实现对矩阵元素的编辑和修改。
例10.>
A(3,1)=0%将A的第3行1列元素修改为0
A=1234
5678
0101112
A(1:
2,3:
4)=eye
(2)%将A的第1,2行3,4列子矩阵改为2阶单位阵
A=1210
5601
4)=[]%删除A的第4列
A=121
560
01011
)=10:
18%用向量10:
18的元素替换矩阵A的元素
A=101316
111417
121518
四、矩阵的数值运算
1.矩阵的基本运算
A±
B(A,B同维数,对应元素相加减)A*B(A列数=B行数,通常矩阵乘法)
A\B(左除,A,B同行数,方程AX=B解)B/A(右除,A,B同列数,方程XA=B解)
A’(共轭转置)A^p(矩阵乘幂,A为方阵)
2.标量与矩阵的运算
b±
A、b*A、b\A、A/b(b与A各元素做相应运算,对于除法一般b只能做除数)
3.矩阵的特殊运算(点运算)
A.*B、A.\B、A./B、A.^B(A、B维数相同,按对应元素运算)
A\.b、b./A、A.^b、b.^A(b与A各元素做相应运算)
A.’(只转置,不共轭)
例11.>
312],B=[210;
302],C=[12;
30]
A=123B=210C=12
31230230
X1=A+B,X2=C*B,X3=A\B
X1=333X2=814X3=0.7143-0.28570.8571
614630000
0.42860.4286-0.2857
X4=A'
X5=C^2
X4=13X5=72
2136
32
Y1=2+A,Y2=2*A,Y3=2\A
Y1=345Y2=246Y3=0.50001.00001.5000
5346241.50000.50001.0000
Z1=A.*B,Z2=A.\B,Z3=A.^B
Z1=220Z2=2.00.500Z3=121
9041.001.02714
Z4=A.^2,Z5=2.^A
Z4=149Z5=248
914824
【注】矩阵的关系运算和逻辑运算将在§
5.程序设计一节中介绍。
2.语句和函数
语句就是能完成一次操作的一条指令(命令),函数则是具有一定完整功能的程序(命令序列),它可以根据用户调用时的输入参数,按照指定的规则进行运算,并通过输出参数将运算结果反馈给用户。
一、语句(命令)
1.语句的一般形式:
[变量=]表达式
【注】①若缺省“变量=”,则系统默认ans为变量名。
②在命令窗口输入一个语句并回车,则命令立即执行并显示计算结果;
若语句末尾以分号“;
”结束,则命令执行后不显示计算结果。
③若一个语句太长可以使用续行符“…”将其延续到下一行。
④一行中可书写多个语句,各语句之间要用逗号(显示计算结果)或分号(不显示计算结果)分开。
例1.>
a=[12345];
b=[13579];
...
c=a.*b,d=a*b'
e=a'
*b
c=16152845
d=95
e=13579
26101418
39152127
412202836
515253545
2.几个特殊常量
3.字符串的输入
在MATLAB中,字符串它是按(行)向量形式储存的,文本块则按矩阵形式储存的。
每一个字符作为一个元素,对它们也可以进行提取、拼接和修改。
例2.>
s1='
Hello'
;
s2='
every'
s3='
body'
s=[s1,'
'
s2,'
'
s3]%字符串
s=Hello,everybody
h=['
河南大学'
'
数学学院'
]%多行文本按矩阵形式输入,要求各行长度
h=河南大学%(字符数)相同,不足者后面补空格
数学学院
二、函数
MATLAB提供了大量的函数,函数名一般由小写字母组成。
按照用法,MATLAB函数可分为三种类型:
标量函数、向量函数、矩阵函数。
1.标量函数
这些函数本质上是作用于标量的,当它们作用于矩阵(或数组)时,其结果是分别作用于矩阵(或数组)的每一个元素。
(1)三角函数(以弧度为单位):
sin(x)正玄cos(x)余玄tan(x)正切cot(x)余切
sec(x)正割csc(x)余割
(2)其它函数:
sqrt(x)正平方根exp(x)以e为底指数pow2(x)以2为底指数
log(x)自然对数log10(x)以10为底对数abs(x)绝对值或复数模
round(x)四舍五入取整floor(x)向-∞方向取整ceil(x)向+∞方向取整
fix(x)向0方向取整sign(x)符号函数conj(x)复数共轭
real(x)取实部imag(x)取虚部angle(x)取幅角
rats(x)有理逼近rat(x)连分数显示rem(x,y)x除以y的余数
例3.设x=[00.250.50.751],计算函数
在x各点处的值。
解:
x=[00.250.50.751];
y=2*sin(x)+x.*exp(x)
结果:
y=00.81581.78322.95104.4012
【注】①计算函数值也可用命令:
feval(F,x),其中F表示函数名字符串或函数句柄(@函数名),如命令y=sin(x)也可写作y=feval('
sin'
x)或y=feval(@sin,x)。
②简单函数可以用inline函数形式输入:
y=feval(inline('
sin(x)+2'
),x)
例如上例:
y=feval(inline('
2*sin(x)+x.*exp(x)'
若直接利用函数文件(如正弦函数)计算函数值,可以有以下方法:
y=sin(x)
y=feval('
x)
y=feval(@sin,x)
sin(x)'
y=00.24740.47940.68160.8415
2.向量函数
这些函数本质上是作用于向量的,当它们作用于矩阵时,其结果产生一个行向量,行向量每一个元素是该函数作用于矩阵相应列的结果。
max(x)最大值min(x)最小值mean(x)平均值
sum(x)求和length(x)长度median(x)中值
prod(x)连乘积sort(x)由小到大排序roots(p)求多项式根
polyval(p,s)求多项式p在s处的值
3.矩阵函数
(1)构造矩阵函数:
zeros(n,m)0阵ones(n,m)1阵eye(n,n)单位阵
rand(n,m)(0,1)均匀分布随机阵randn(n.m)正态分布随机阵
diag(A)(构造或提取对角阵)triu(A)/tril(A)(提取上/下三角阵)
reshape(A,m,n)(重新整理A的维数)
(2)矩阵计算函数:
[m,n]=size(A)(大小)det(A)(行列式)rank(A)(秩)
inv(A)(逆矩阵)trace(A)(矩阵迹)norm(A)(矩阵范数)
[V,D]=eig(A)(D对角阵,对角元素为A特征值,V列向量为相应的特征向量。
)
poly(A)(求矩阵A的特征多项式,或由根(A为向量)求多项式)
例4.>
a=[12;
34;
56],b=reshape(a,2,3)
a=12b=154
34326
56
例5.熟悉函数max(x),sum(x),length(x),size(X),diag(X)的功能。
A=[12543],B=[137;
246]
A=12543B=137
246
a=max(A),,aa=max(B)
a=5aa=247
[p,k]=max(A),[pp,kk]=max(B)
p=5k=3
pp=247kk=221
s=sum(A),ss=sum(B)
s=15ss=3713
l=length(A),ll=length(B)
l=5ll=3
z=size(B),[m,n]=size(B),
z=23m=2n=3
D=diag(A),DD=diag(B)
D=10000
02000
00500
00040
00003
DD=1
4
(例7).输入矩阵B,求:
(1)B的维数、秩、行列式、迹;
(2)B的逆,验证B*B-1=E(单位阵);
(3)B的特征多项式、特征值;
(4)对B作初等行变换,验证行列式性质。
B=[123;
234;
341];
%输入矩阵B
[m,n]=size(B),r=rank(B),D=det(B),T=trace(B)%维数、秩、行列式、迹
m=3n=3r=3D=4T=5
C=inv(B),C*B%B的逆
C=-3.25002.5000-0.2500ans=1.0000-0.00000.0000
2.5000-2.00000.50000.00001.00000.0000
-0.25000.5000-0.25000.000001.0000
p=poly(B),e=eig(B),r=roots(p)%特征多项式、特征值
p=1.0000-5.0000-22.0000-4.0000
e=-2.6723r=7.8627
-0.1904-2.6723
7.8627-0.1904
B0=B,B([1,3],:
)=B([3,1],:
),D0=det(B0),D=det(B)%交换(1,3)两行
B0=123B=341
234234
341123
D0=4D=-4%行列式值反号
§
3.命令和窗口环境
本节介绍MATLAB的在线帮助系统、一些特殊命令及窗口环境。
一、系统在线帮助
1.利用“Help”菜单或帮助按钮“?
”
2.利用命令“help”
3.利用命令“lookfor”
helpsqrt
SQRTSquareroot.
SQRT(X)isthesquarerootoftheelementsofX.Complex
resultsareproducedifXisnotpositive.,SeealsoSQRTM....
helpsqr%仅对M文件第一行与关键字完全匹配的结果进行搜索
sqr.mnotfound.
lookforsqr%仅对M文件第一行包含关键字的结果进行搜索
REALSQRTRealsquareroot.
SQRTSquareroot.
SQRTMMatrixsquareroot.
LSQRLSQRImplementationofConjugateGradientsontheNormalEquations.
SQRTSymbolicmatrixelement-wisesquareroot.
二、数据显示格式
MATLAB显示数据结果时,若数据是整数,则显示整数;
若数据是实数,默认情况下显示小数点后4位数字。
要改变数据显示格式,方法有两种:
利用菜单“File\Preferences”(永久有效);
利用命令“format”。
(仅对MATLAB当前窗口有效)
命令格式示例(
)说明
formatshort3.1416小数点后4位(缺省显示)
formatlong3.1415926535897915位数字
formatbank3.14小数点后2位
format++显示+、-、0
formatshorte3.1416e+0005位科学记数法
formatlonge3.141592653589793e+00015位科学记数法
formatrat355/113最接近的有理数
三、历史命令的回调、编辑与重用
1.利用方向键(命令窗口,P14)
2.利用命令历史窗口
(1)鼠标双击一条命令,可发送到命令窗口立即执行;
(2)选定命令(Ctrl+单击)->
击右键,选择EvaluateSelection,命令立即执行;
(3)选定命令(Ctrl+单击)->
复制->
在命令窗口粘贴->
修改->
回车执行;
(4)选定命令(Ctrl+单击)->
拖动到命令窗口->
回车执行。
【注】在命令历史窗口,选定命令序列,击右键,选择CreateM-file,可以建立M文件。
四、MATLAB工作区
MATLAB工作区是用来接受MATLAB命令的内存区域。
1.显示工作空间信息
who显示变量名
whos显