ch02bWord文档格式.docx
《ch02bWord文档格式.docx》由会员分享,可在线阅读,更多相关《ch02bWord文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
【例2.5.1-3】矩阵的分行输入
A=[1,2,3
4,5,6
(以下是显示结果)
【例2.5.1-4】指令的续行输入(以下格式在除Notebook外的MATLAB环境中可运行)
S=1–1/2+1/3–1/4+1/5–1/6...
+1/7–1/8
S=
0.6345
2.5.2数值、变量和表达式
2.5.2.1数值的记述
2.5.2.2变量命名规则
2.5.2.3MATLAB默认的预定义变量
2.5.2.4表达式
2.5.2.5复数和复数矩阵
【例2.5.2.5-1】复数
表达,及计算
。
(1)经典教科书的直角坐标表示法
z1=3+4i
z1=
3.0000+4.0000i
(2)采用运算符构成的直角坐标表示法和极坐标表示法
z2=1+2*i%运算符构成的直角坐标表示法
z3=2*exp(i*pi/6)%运算符构成的极坐标表示法
z=z1*z2/z3
z2=
1.0000+2.0000i
z3=
1.7321+1.0000i
z=
0.3349+5.5801i
【例2.5.2.5-2】复数矩阵的生成及运算
A=[1,3;
2,4]-[5,8;
6,9]*i
B=[1+5i,2+6i;
3+8*i,4+9*i]
C=A*B
1.0000-5.0000i3.0000-8.0000i
2.0000-6.0000i4.0000-9.0000i
B=
1.0000+5.0000i2.0000+6.0000i
3.0000+8.0000i4.0000+9.0000i
C=
1.0e+002*
0.99001.1600-0.0900i
1.1600+0.0900i1.3700
【例2.5.2.5-3】求上例复数矩阵C的实部、虚部、模和相角。
C_real=real(C)
C_imag=imag(C)
C_magnitude=abs(C)
C_phase=angle(C)*180/pi%以度为单位计算相角
C_real=
99116
116137
C_imag=
0-9
90
C_magnitude=
99.0000116.3486
116.3486137.0000
C_phase=
0-4.4365
4.43650
2.5.3计算结果的图形表示
【例2.5.3-1】画出衰减振荡曲线
及其它的包络线
的取值范围是
t=0:
pi/50:
4*pi;
%定义自变量取值数组
y0=exp(-t/3);
%计算与自变量相应的y0数组
y=exp(-t/3).*sin(3*t);
%计算与自变量相应的y数组
plot(t,y,'
-r'
t,y0,'
:
b'
t,-y0,'
)%用不同颜色、线型绘制曲线
grid%在“坐标纸”画小方格
图2.5.3-1衰减振荡曲线与包络
【例2.5.3-2】画出
所表示的三维曲面。
clear;
x=-8:
0.5:
8;
%定义自变量x的一维刻度向量
y=x'
;
%定义自变量y的一维刻度向量
X=ones(size(y))*x;
%计算自变量平面上取值点
坐标的二维数组
Y=y*ones(size(x));
R=sqrt(X.^2+Y.^2)+eps;
%计算中间变量
<
5>
Z=sin(R)./R;
%计算与自变量二维数组相应的函数值
<
6>
mesh(Z);
%绘制三维网格图
colormap(hot)%指定网格图用hot色图绘制
图2.5.3-2三维网线图
2.6控制指令窗的指令、操作和标点
2.6.1常用控制指令
2.6.2数值计算结果的显示格式
2.6.3指令行的编辑
【例2.6.3-1】指令行操作过程示例。
(1)若用户想计算
的值,那末用户应依次键入以下字符
y1=2*sin(0.3*pi)/(1+sqrt(5))
(2)按【Enter】键,该指令便被执行,并给出以下结果
y1=
0.5000
在以上操作和计算结束后,操作指令和计算结果都记录在MATLAB工作内存中。
因此,假如用户希望调回前面输入的指令重新运行,或希望对前面输入的指令加以修改后再运行,那末只要反复按动键盘上的箭头键,就可从内存中把以前输入的那指令调回到当前行,以供重新运行或修改后运行。
新的计算结果,只可能被此后运行的指令所使用,而绝不会影响以前生成的(非同名)变量的“内容”。
(3)利用指令回调,进行新的计算。
若又想计算
,用户当然可以象前一个算例那样,通过键盘把相应字符一个一个“敲入”。
但也可以较方便地用操作键获得该指令,具体办法是:
先用键调回已输入过的指令y1=2*sin(0.3*pi)/(1+sqrt(5));
然后移动光标,把y1改成y2;
把sin改成cos便可。
即得
y2=2*cos(0.3*pi)/(1+sqrt(5))
y2=
0.3633
2.6.4指令行中的标点符号
2.6.5内存变量的查阅和删除
2.6.5.1指令who和whos
【例2.6.5.1-1】用who检查MATLAB内存变量。
在指令窗中运行以下指令,就可看到内存变量。
who
Yourvariablesare:
RYxy1
XZyy2
【例2.6.5.1-2】键入whos,获得驻留变量的详细情况:
全部变量名,变量的数组维数,占用字节数,变量的类别(如双精度),是否复数等。
whos
NameSizeBytesClass
R33x338712doublearray
X33x338712doublearray
Y33x338712doublearray
Z33x338712doublearray
x1x33264doublearray
y33x1264doublearray
y11x18doublearray
y21x18doublearray
Grandtotalis4424elementsusing35392bytes
2.6.5.2内存浏览器和变量编辑器
2.6.6变量的文件保存
2.6.6.1通过菜单保存和再度读取变量
2.6.6.2save和load指令
【例2.6.6.2-1】数据的存取。
(1)建立用户目录,并使之成为当前目录,保存数据
mkdir('
c:
\'
'
my_dir'
);
%在C盘上创建目录my_dir
cdc:
\my_dir%使c:
\my_dir成为当前目录
savesafXYZ%选择内存中的X,Y,Z变量保存为saf.mat文件
dir%显示目录上的文件
...saf.mat
(2)清空内存,从saf.mat向内存装载变量Z
clear%清除内存中的全部变量
loadsafZ%把saf.mat文件中的Z变量装入内存
who%检查内存中有什么变量
Z
〖说明〗
●本例运用了例2.5.3-2和例2.6.3-1中指令运行后产生的变量。
●如果一组数据是经过长时间的复杂计算后获得的,那末为避免再次重复计算,常使用save加以保存。
此后,每当需要,都可通过load重新获取这组数据。
这种处理模式常在实际中被采用。
2.7操作实录指令和M脚本文件
2.7.1操作实录指令
2.7.2M脚本文件编写初步
2.8在线自学引导和演示指令
2.8.1在线提供的入门引导
2.8.2在线演示
2.9帮助系统
2.9.1帮助系统的构造
2.9.2指令窗中的help指令
2.9.2.1直接使用help获得指令的使用说明
【例2.9.2.1-1】假如准确知道所要求助的主题词,或指令名称,那末使用help是获得在线帮助的最简单有效的途径。
本例演示:
关于矩阵对数函数logm使用说明的在线求助。
helplogm
LOGMMatrixlogarithm.
L=LOGM(A)isthematrixlogarithmofA,theinverseofEXPM(A).ComplexresultsareproducedifAhasnegativeeigenvalues.Awarningmessageisprintedifthecomputedexpm(L)isnotclosetoA.
[L,esterr]=logm(A)doesnotprintanywarningmessage,butreturnsanestimateoftherelativeresidual,norm(expm(L)-A)/norm(A).
IfAisrealsymmetricorcomplexHermitian,thensoisLOGM(A).
Somematrices,likeA=[01;
00],donothaveanylogarithms,realorcomplex,andLOGMcannotbeexpectedtoproduceone.
SeealsoEXPM,SQRTM,FUNM.
2.9.2.2使用help指令进行分类搜索
【例2.9.2.2-1】运行不带任何限定的help,可以得到分类名称明细表。
help
HELPtopics:
matlab\general-Generalpurposecommands.
matlab\ops-Operatorsandspecialcharacters.
matlab\lang-Programminglanguageconstructs.
matlab\elmat-Elementarymatricesandmatrixmanipulation.
matlab\elfun-Elementarymathfunctions.
matlab\specfun-Specializedmathfunctions.
............
Formorehelpondirectory/topic,type"
helptopic"
.
2.9.2.3采用helptopic指令形式获得具体子类的指令明细
【例2.9.2.3-1】如果用户想知道有关矩阵操作指令一栏表,那末就运行以下指令。
helpelmat
Elementarymatricesandmatrixmanipulation.
Elementarymatrices.
zeros-Zerosarray.
ones-Onesarray.
............
Basicarrayinformation.
size-Sizeofmatrix.
length-Lengthofvector.
Matrixmanipulation.
reshape-Changesize.
diag-Diagonalmatricesanddiagonalsofmatrix.
Specialvariablesandconstants.
ans-Mostrecentanswer.
eps-Floatingpointrelativeaccuracy.
Specializedmatrices.
compan-Companionmatrix.
gallery-Highamtestmatrices.
............
●省略号由笔者所加,用来表示被删除的内容。
这样做是出于节省篇幅的考虑。
2.9.3指令窗中的lookfor指令
【例2.9.3-1】查找包含积分这个关键词的所有指令。
lookforintegral
ELLIPKECompleteellipticintegral.
EXPINTExponentialintegralfunction.
DBLQUADNumericallyevaluatedoubleintegral.
INNERLPUsedwithDBLQUADtoevaluateinnerloopofintegral.
QUADNumericallyevaluateintegral,lowordermethod.
QUAD8Numericallyevaluateintegral,higherordermethod.
COSINTCosineintegralfunction.
SININTSineintegralfunction.
ASSEMAAssemblesareaintegralcontributionsinaPDEproblem.
FOURIERFourierintegraltransform.
IFOURIERInverseFourierintegraltransform.
2.9.4其他起帮助作用的工具指令
2.9.5专门的在线帮助窗
2.9.6超文本形式的用户指南和指令手册
2.9.7用户指南和指令手册的PDF文件
2.10文件管理
2.10.1MATLAB的搜索路径
【例2.10.1-1】sqrt是MATLAB的内部函数。
下面观察,当对sqrt重新赋值后,所产生的不正常现象。
(1)正常运作情况
sqrt
(2)
1.4142
whichsqrt
sqrtisabuilt-infunction.
existsqrt%当用exist判断sqrt时,显示结果“5”指明是内建函数。
5
(2)不正常运作
sqrt=[1,0]%把sqrt赋值成一个两个元素的行向量
sqrt=
10
sqrt
(2)%这时该指令给出结果是0,而不是正常的平方根值1.4142
0
whichsqrt%当用which检查sqrt在哪里时,显示的却是“内存变量”
sqrtisavariable.
existsqrt%当用exist判断sqrt时,显示结果“1”指明是变量
1
2.10.2用户目录的设置
2.10.3MATLAB搜索路径的扩展和修改
2.10.3.1利用path指令扩展搜索路径
2.10.3.2利用路径浏览器修改搜索路径