12.基础准备和入门2.1MATLAB5.x版对外部系统的要求2.2MATLAB的安装2.3MATLAB环境的启动2.4MATLAB指令窗简介2.4.1工具条2.4.2菜单选项2.5指令窗运行入门2.5.1最简单的计算器使用法【例2.5.1-1】求23)]47(212[的算术运算结果。(1)用键盘在MATLAB指令窗中输入以下内容(12+2*(7-4))/3^2(2)在上述表达式输入完成后,按【Enter】键,该就指令被执行。(3)在指令执行后,MATLAB指令窗中将显示以下结果。ans=2【例2.5.1-2】简单矩阵987654321A的输入步骤。(1)在键盘上输入下列内容A=[1,2,3;4,5,6;7,8,9](2)按【Enter】键,指令被执行。(3)在指令执行后,MATLAB指令窗中将显示以下结果:A=1234567892【例2.5.1-3】矩阵的分行输入A=[1,2,34,5,67,8,9](以下是显示结果)A=123456789【例2.5.1-4】指令的续行输入(以下格式在除Notebook外的MATLAB环境中可运行)S=1–1/2+1/3–1/4+1/5–1/6...+1/7–1/8S=0.63452.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】复数ieziziz63212,21,43表达,及计算321zzzz。(1)经典教科书的直角坐标表示法z1=3+4iz1=3.0000+4.0000i(2)采用运算符构成的直角坐标表示法和极坐标表示法z2=1+2*i%运算符构成的直角坐标表示法z3=2*exp(i*pi/6)%运算符构成的极坐标表示法z=z1*z2/z3z2=1.0000+2.0000iz3=1.7321+1.0000iz=0.3349+5.5801i3【例2.5.2.5-2】复数矩阵的生成及运算A=[1,3;2,4]-[5,8;6,9]*iB=[1+5i,2+6i;3+8*i,4+9*i]C=A*BA=1.0000-5.0000i3.0000-8.0000i2.0000-6.0000i4.0000-9.0000iB=1.0000+5.0000i2.0000+6.0000i3.0000+8.0000i4.0000+9.0000iC=1.0e+002*0.99001.1600-0.0900i1.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=99116116137C_imag=0-990C_magnitude=99.0000116.3486116.3486137.0000C_phase=0-4.43654.436502.5.3计算结果的图形表示【例2.5.3-1】画出衰减振荡曲线teyt3sin3及其它的包络线30tey。t的取值范围是]4,0[。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,':b')%用不同颜色、线型绘制曲线grid%在“坐标纸”画小方格402468101214-1-0.8-0.6-0.4-0.200.20.40.60.81图2.5.3-1衰减振荡曲线与包络【例2.5.3-2】画出2222)sin(yxyxz所表示的三维曲面。yx,的取值范围是]8,8[。clear;x=-8:0.5:8;%定义自变量x的一维刻度向量y=x';%定义自变量y的一维刻度向量X=ones(size(y))*x;%计算自变量平面上取值点x坐标的二维数组Y=y*ones(size(x));%计算自变量平面上取值点y坐标的二维数组R=sqrt(X.^2+Y.^2)+eps;%计算中间变量22yxR5Z=sin(R)./R;%计算与自变量二维数组相应的函数值RRzsin6mesh(Z);%绘制三维网格图colormap(hot)%指定网格图用hot色图绘制图2.5.3-2三维网线图2.6控制指令窗的指令、操作和标点52.6.1常用控制指令2.6.2数值计算结果的显示格式2.6.3指令行的编辑【例2.6.3-1】指令行操作过程示例。(1)若用户想计算51)3.0sin(21y的值,那末用户应依次键入以下字符y1=2*sin(0.3*pi)/(1+sqrt(5))(2)按【Enter】键,该指令便被执行,并给出以下结果y1=0.5000在以上操作和计算结束后,操作指令和计算结果都记录在MATLAB工作内存中。因此,假如用户希望调回前面输入的指令重新运行,或希望对前面输入的指令加以修改后再运行,那末只要反复按动键盘上的箭头键,就可从内存中把以前输入的那指令调回到当前行,以供重新运行或修改后运行。新的计算结果,只可能被此后运行的指令所使用,而绝不会影响以前生成的(非同名)变量的“内容”。(3)利用指令回调,进行新的计算。若又想计算51)3.0cos(22y,用户当然可以象前一个算例那样,通过键盘把相应字符一个一个“敲入”。但也可以较方便地用操作键获得该指令,具体办法是:先用键调回已输入过的指令y1=2*sin(0.3*pi)/(1+sqrt(5));然后移动光标,把y1改成y2;把sin改成cos便可。即得y2=2*cos(0.3*pi)/(1+sqrt(5))y2=0.36332.6.4指令行中的标点符号2.6.5内存变量的查阅和删除2.6.5.1指令who和whos【例2.6.5.1-1】用who检查MATLAB内存变量。在指令窗中运行以下指令,就可看到内存变量。whoYourvariablesare:RYxy1XZyy2【例2.6.5.1-2】键入whos,获得驻留变量的详细情况:全部变量名,变量的数组维数,占用字节数,变量的类别(如双精度),是否复数等。whosNameSizeBytesClassR33x338712doublearrayX33x338712doublearrayY33x338712doublearrayZ33x338712doublearray6x1x33264doublearrayy33x1264doublearrayy11x18doublearrayy21x18doublearrayGrandtotalis4424elementsusing35392bytes2.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_dircdc:\my_dir%使c:\my_dir成为当前目录savesafXYZ%选择内存中的X,Y,Z变量保存为saf.mat文件dir%显示目录上的文件...saf.mat(2)清空内存,从saf.mat向内存装载变量Zclear%清除内存中的全部变量loadsafZ%把saf.mat文件中的Z变量装入内存who%检查内存中有什么变量Yourvariablesare: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在线演示72.9帮助系统2.9.1帮助系统的构造2.9.2指令窗中的help指令2.9.2.1直接使用help获得指令的使用说明【例2.9.2.1-1】假如准确知道所要求助的主题词,或指令名称,那末使用help是获得在线帮助的最简单有效的途径。本例演示:关于矩阵对数函数logm使用说明的在线求助。helplogmLOGMMatrixlogarithm.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,可以得到分类名称明细表。helpHELPtopics:matlab\general-Generalpurposecommands.matlab\ops-Operatorsandspecialcharacters.matlab\lang-Programminglanguageconstructs.matlab\elmat-Elementarymatricesandmatrixmanipulation.matlab\elfun-Elementarymathfunctions.matlab\specfun-Specializedmathfunctions.............Formorehelpondirectory/topic,typehelptopic.2.9.2.3采用helptopic指令形式获得具体子类的指令明细【例2.9.2.3-1】如果用户想知道有关矩阵操作指令一栏表,那末就运行以下指令。helpelmatElementarymatricesandmatrixmanipulation.Elementarymatrices.zeros-Zerosarray.ones-Onesarray.............Basicarrayinformation.size-Sizeofmatrix.length-Lengthofvector.............Matrixmanipulation.8reshape-Changesize.diag-Diagonalmatricesanddiagonalsofmatrix.............Specialvariablesandconstants.ans-Mostrecentanswer.eps-Floatingpointrelativeaccuracy.............Specializedmatrices.compan-Companionmatrix.gallery-Highamtestmatrices.............〖说明〗省略号由笔者所加,用来表示被删除的内容。这样做是出于节省篇幅的考虑。2.9.3指令窗中的lookfor指令【