1、ch02b2. 基础准备及入门2.1 MATLAB 5.x 版对外部系统的要求 2.2 MATLAB的安装2.3 MATLAB环境的启动2.4 MATLAB指令窗简介2.4.1 工具条2.4.2 菜单选项2.5 指令窗运行入门2.5.1 最简单的计算器使用法【例2.5.1-1】求的算术运算结果。(1)用键盘在MATLAB指令窗中输入以下内容 (12+2*(7-4)/32 (2)在上述表达式输入完成后,按【Enter】键,该就指令被执行。(3)在指令执行后,MATLAB指令窗中将显示以下结果。ans = 2 【例2.5.1-2】简单矩阵的输入步骤。(1)在键盘上输入下列内容A = 1,2,3;
2、4,5,6; 7,8,9 (2)按【Enter】键,指令被执行。(3)在指令执行后,MATLAB指令窗中将显示以下结果:A = 1 2 3 4 5 6 7 8 9 【例2.5.1-3】矩阵的分行输入A=1,2,3 4,5,6 7,8,9 (以下是显示结果)A = 1 2 3 4 5 6 7 8 9 【例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.3 M
3、ATLAB默认的预定义变量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.0000iz3 = 1.7321 + 1.0000iz = 0.3349 + 5.5801i 【例2.5.2.5-2】复数矩阵的生成及运算A=1,3;2,4-5
4、,8;6,9*iB=1+5i,2+6i;3+8*i,4+9*i C=A*B A = 1.0000 - 5.0000i 3.0000 - 8.0000i 2.0000 - 6.0000i 4.0000 - 9.0000iB = 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 8.0000i 4.0000 + 9.0000iC = 1.0e+002 * 0.9900 1.1600 - 0.0900i 1.1600 + 0.0900i 1.3700 【例2.5.2.5-3】求上例复数矩阵C的实部、虚部、模和相角。C_real=real(C)C_imag=imag
5、(C)C_magnitude=abs(C)C_phase=angle(C)*180/pi %以度为单位计算相角 C_real = 99 116 116 137C_imag = 0 -9 9 0C_magnitude = 99.0000 116.3486 116.3486 137.0000C_phase = 0 -4.4365 4.4365 0 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); %计
6、算与自变量相应的y数组plot(t,y,-r,t,y0,:b,t,-y0,:b) %用不同颜色、线型绘制曲线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; %计算中间变量 Z=sin(R)./R; %计算与自变量二维数组相应的函
7、数值 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工作内存中。因此,假如用户希望调回前面输入的指令重新运行,或希望对
8、前面输入的指令加以修改后再运行,那末只要反复按动键盘上的箭头键,就可从内存中把以前输入的那指令调回到当前行,以供重新运行或修改后运行。新的计算结果,只可能被此后运行的指令所使用,而绝不会影响以前生成的(非同名)变量的“内容”。(3)利用指令回调,进行新的计算。 若又想计算,用户当然可以象前一个算例那样,通过键盘把相应字符一个一个“敲入”。但也可以较方便地用操作键获得该指令,具体办法是:先用键调回已输入过的指令 y1=2*sin(0.3*pi)/(1+sqrt(5) ;然后移动光标,把y1改成y2;把 sin 改成 cos 便可。即得y2=2*cos(0.3*pi)/(1+sqrt(5) y2
9、= 0.3633 2.6.4 指令行中的标点符号2.6.5 内存变量的查阅和删除 2.6.5.1 指令who和whos【例2.6.5.1-1】用 who 检查MATLAB内存变量。 在指令窗中运行以下指令,就可看到内存变量。who Your variables are:R Y x y1 X Z y y2 【例2.6.5.1-2】键入 whos ,获得驻留变量的详细情况:全部变量名,变量的数组维数,占用字节数,变量的类别(如双精度),是否复数等。whos Name Size Bytes Class R 33x33 8712 double array X 33x33 8712 double arr
10、ay Y 33x33 8712 double array Z 33x33 8712 double array x 1x33 264 double array y 33x1 264 double array y1 1x1 8 double array y2 1x1 8 double arrayGrand total is 4424 elements using 35392 bytes 2.6.5.2 内存浏览器和变量编辑器2.6.6 变量的文件保存2.6.6.1 通过菜单保存和再度读取变量2.6.6.2 save 和load 指令【例2.6.6.2-1】数据的存取。(1)建立用户目录,并使之成为
11、当前目录,保存数据mkdir(c:,my_dir); %在C盘上创建目录my_dircd c:my_dir %使c:my_dir成为当前目录save saf X Y Z %选择内存中的X,Y,Z变量保存为saf.mat文件dir %显示目录上的文件 . . saf.mat (2)清空内存,从saf.mat 向内存装载变量Zclear %清除内存中的全部变量load saf Z %把saf.mat文件中的Z变量装入内存who %检查内存中有什么变量 Your variables are:Z 说明 本例运用了例2.5.3-2和例2.6.3-1中指令运行后产生的变量。 如果一组数据是经过长时间的复杂
12、计算后获得的,那末为避免再次重复计算,常使用save 加以保存。此后,每当需要,都可通过 load重新获取这组数据。这种处理模式常在实际中被采用。2.7 操作实录指令和M脚本文件2.7.1 操作实录指令2.7.2 M脚本文件编写初步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 使用
13、说明的在线求助。help logm LOGM Matrix logarithm.L = LOGM(A) is the matrix logarithm of A, the inverse of EXPM(A). Complex results are produced if A has negative eigenvalues. A warning message is printed if the computed expm(L) is not close to A. L,esterr = logm(A) does not print any warning message, but ret
14、urns an estimate of the relative residual, norm(expm(L)-A)/norm(A). If A is real symmetric or complex Hermitian, then so is LOGM(A). Some matrices, like A = 0 1; 0 0, do not have any logarithms, real or complex, and LOGM cannot be expected to produce one. See also EXPM, SQRTM, FUNM. 2.9.2.2 使用help指令
15、进行分类搜索【例2.9.2.2-1】运行不带任何限定的help,可以得到分类名称明细表。help HELP topics:matlabgeneral - General purpose commands.matlabops - Operators and special characters.matlablang - Programming language constructs.matlabelmat - Elementary matrices and matrix manipulation.matlabelfun - Elementary math functions.matlabspec
16、fun - Specialized math functions. .For more help on directory/topic, type help topic. 2.9.2.3 采用help topic指令形式获得具体子类的指令明细【例2.9.2.3-1】如果用户想知道有关矩阵操作指令一栏表,那末就运行以下指令。help elmat Elementary matrices and matrix manipulation. Elementary matrices. zeros - Zeros array. ones - Ones array. . . Basic array infor
17、mation. size - Size of matrix. length - Length of vector. . . Matrix manipulation. reshape - Change size. diag - Diagonal matrices and diagonals of matrix. . . Special variables and constants. ans - Most recent answer. eps - Floating point relative accuracy. . . Specialized matrices. compan - Compan
18、ion matrix. gallery - Higham test matrices. . . 说明 省略号由笔者所加,用来表示被删除的内容。这样做是出于节省篇幅的考虑。2.9.3 指令窗中的lookfor 指令【例2.9.3-1】查找包含积分这个关键词的所有指令。lookfor integral ELLIPKE Complete elliptic integral.EXPINT Exponential integral function.DBLQUAD Numerically evaluate double integral. INNERLP Used with DBLQUAD to eva
19、luate inner loop of integral.QUAD Numerically evaluate integral, low order method.QUAD8 Numerically evaluate integral, higher order method.COSINT Cosine integral function.SININT Sine integral function.ASSEMA Assembles area integral contributions in a PDE problem.COSINT Cosine integral function.FOURI
20、ER Fourier integral transform.IFOURIER Inverse Fourier integral transform.SININT Sine integral function.2.9.4 其他起帮助作用的工具指令2.9.5 专门的在线帮助窗2.9.6 超文本形式的用户指南和指令手册2.9.7 用户指南和指令手册的PDF文件2.10 文件管理2.10.1 MATLAB的搜索路径【例2.10.1-1】sqrt是MATLAB的内部函数。下面观察,当对sqrt重新赋值后,所产生的不正常现象。(1)正常运作情况sqrt(2) ans =1.4142 which sqrt
21、sqrt is a built-in function. exist sqrt %当用exist判断sqrt时,显示结果“5”指明是内建函数。 ans = 5 (2)不正常运作sqrt=1, 0 %把sqrt赋值成一个两个元素的行向量 sqrt = 1 0 sqrt(2) %这时该指令给出结果是0,而不是正常的平方根值1.4142 ans = 0 which sqrt %当用which检查sqrt在哪里时,显示的却是“内存变量” sqrt is a variable. exist sqrt %当用exist判断sqrt时,显示结果“1”指明是变量 ans = 1 2.10.2 用户目录的设置2.10.3 MATLAB搜索路径的扩展和修改2.10.3.1 利用 path 指令扩展搜索路径2.10.3.2 利用路径浏览器修改搜索路径
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1