当前位置:文档之家› MATLAB讲义

MATLAB讲义

第一章基础准备及入门什么是MATLAB?MATLAB是MathWorks公司于1984年推出的数学软件,是一种用于科学工程计算的高效率的高级语言。

MATLAB最初作为矩阵实验室(Matrix Laboratory),主要向用户提供一套非常完善的矩阵运算命令。

随着数值运算的演变,它逐渐发展成为各种系统仿真、数字信号处理、科学可是化的通用标准语言。

在科学研究和工程应用的过程中,往往需要大量的数学计算,传统的纸笔和计算机已经不能从根本上满足海量计算的要求,一些技术人员尝试使用Basic,Fortran,C\C++等语言编写程序来减轻工作量。

但编程不仅需要掌握所用语言的语法,还需要对相关算法进行深入分析,这对大多数科学工作者而言有一定的难度。

与这些语言相比, MATLAB的语法更简单,更贴近人的思维方式。

用MATLAB编写程序,犹如在一张演算纸上排列公式和求解问题一样高效率,因此被称为“科学便笺式”的科学工程计算语言。

MATLAB由主包和功能各异的工具箱组成,其基本数据结构是矩阵。

正如其名“矩阵实验室”,MATLAB起初主要是用来进行矩阵运算。

经过MathWorks 公司的不断完善,时至今日,MATLAB已经发展成为适合多学科、多工作平台的功能强大的大型软件。

本章有两个目的:一是讲述MATLAB正常运行所必须具备的基础条件;二是简明系统地介绍高度集成的Desktop操作桌面的功能和使用方法。

本章的前两节分别讲述:MATLAB的正确安装方法和MATLAB 环境的启动。

因为指令窗是MATLAB最重要的操作界面,所以本章用第 1.3、1.4 两节以最简单通俗的叙述、算例讲述指令窗的基本操作方法和规则。

这部分内容几乎对MATLAB各种版本都适用。

MATLAB6.x 不同于其前版本的最突出之处是:向用户提供前所未有的、成系列的交互式工作界面。

了解、熟悉和掌握这些交互界面的基本功能和操作方法,将使新老用户能事半功倍地利用MATLAB去完成各种学习和研究。

为此,本章特设几节用于专门介绍最常用的交互界面:历史指令窗、当前目录浏览器、工作空间浏览器、内存数组编辑器、交互界面分类目录窗、M文件编辑/调试器、及帮助导航/浏览器。

本章是根据MATLAB6.5版编写的,但大部分内容也适用于其他6.x版。

1.1M ATLAB的安装和内容选择图 1.1-11.2D esktop操作桌面的启动1.2.1MATLAB的启动1.2.2Desktop操作桌面简介一操作桌面的缺省外貌下图是6.5版的Desktop操作界面的默认外形。

该桌面的上层摆放着最常用的界面:命令窗口(指令窗)、历史指令窗、工作空间浏览器,在窗口的左下角新增加了“开始按钮”。

在缺省情况下,还有一个只能看到“窗名”的常用交互界面:当前目录窗。

它们被铺放在桌面的下层。

图1.2-1二 通用操作界面下面所列的9个交互界面最为常用。

① 指令窗(Command Window ) ② 历史指令窗(Command History )③ 当前目录浏览器(Current Directory Browser ) ④ 工作空间浏览器(Workspace Brower ) ⑤ 内存数组编辑器(Array Editor ) ⑥ 开始按钮(Start )⑦ 交互界面分类目录窗(Lauch Pad ) ⑧ M 文件编辑/调试器(Editor/Debugger )⑨ 帮组导航/浏览器(Help Navigator/Browser )1.3 C ommand Window 运行入门1.3.1Command Window 指令窗简介图 1.3-11.3.2 最简单的计算器使用法【例1.3.2-1】求23)]47(212[÷-⨯+的算术运算结果。

(1)用键盘在MATLAB 指令窗中输入以下内容 >> (12+2*(7-4))/3^2(2)在上述表达式输入完成后,按【Enter 】键,该就指令被执行。

(3)在指令执行后,MATLAB 指令窗中将显示以下结果。

ans = 2【例1.3.2-2】简单矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321A 的输入步骤。

(1)在键盘上输入下列内容A = [1,2,3; 4,5,6; 7,8,9](2)按【Enter 】键,指令被执行。

(3)在指令执行后,MATLAB 指令窗中将显示以下结果:A =1 2 3 4 5 6 7 8 9【例1.3.2-3】矩阵的分行输入。

A=[1,2,3 4,5,6 7,8,9] A =1 2 3 4 5 6 7 8 9【例1.3.2-4】指令的续行输入S=1-1/2+1/3-1/4+ ...1/5-1/6+1/7-1/8 %...为续行号,它把其下的物理行看作该行的“”逻辑继续,以构成一个“较长”的完整指令。

S =0.63451.3.3 数值、变量和表达式一 数值的记数MATLAB 的数值采用的是常用的十进制数表示法,可以带小数点或者负号。

以下记数都是合法的。

二 变量命名规则① 变量名、函数名是对字母大小写敏感的。

变量名的第一个字母必须是英文字母。

② 对于6.5版,变量名最多可包含63个字符(英文、数字和下连符);而对6.5以前的版本,变量名的字符不超过31个。

③ 变量名中不得包含空格(Backspace )、标点,但可以包含下划线。

变量名my_var_201是合法的。

而my ,var201由于逗号的分隔,表示的就不是一个变量名。

3330.003 3.47434 1.5e 5.4e32--三MATLAB默认的预定义变量四运算符和表达式MATLAB中书写表达式的规则和“手写算式”几乎完全相同。

表达式由变量名、运算符和函数名组成,按照与常规相同的优先级从左至右执行计算。

优先级的规定是:指数运算级别最高,乘除运算次之,加减运算最低,但括号可以改变运算次序。

书写表达式时,允许“=”运算符两侧有空格,用于增加可读性。

注:MATLAB用左斜杠或者右斜杠分别表示“左除”或者“右除”运算。

对于标量而言,这两者的作用没有什么区别,但对矩阵而言,两种运算将产生不同的结果。

五复数和复数矩阵MATLAB最强大的功能之一就是它对复数不需要作特殊处理。

MATLAB认识复数,并用预定义变量i和j作为虚数单位。

在MATLAB中,复数可用几种方式表示。

①>>a1=2+4i ↙ %附加的i表示虚部a1=2.0000+4.0000i>>a1=2-3j ↙ %附加的也可以表示虚部a1=2.0000+4.0000i②还可以用MATLAB默认值i=j=sqrt(-1)来表示虚部。

>>a3=2*(4-sqrt(-1)*2) ↙a3=8.0000-4.0000i③注意下面例子的表达式>>a4=5+sin(.5)*i ↙a4=5.0000+0.4794i若将sin(.5)*i中的*去掉,会得到下列信息:>>a4=5+sin(.5)i ↙???a4=5+sin(.5)iError:Missing MATLAB operator.原因是sin(.5)i对MATLAB而言没有意义,因此需要在i和j 之前加乘法符号。

综上所述,直接以字符i和j结尾,只适用于简单数值,不适用于表达式。

【例1.3.3-1】复数ieziziz63212,21,43π=+=+=表达,及计算321zzzz=。

(1)z1= 3 + 4iz1 =3.0000 +4.0000i(2)z2 = 1 + 2 * iz3=2*exp(i*pi/6)z=z1*z2/z3z2 =1.0000 +2.0000iz3 =1.7321 + 1.0000iz =0.3349 + 5.5801i【例1.3.3-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.0000i 3.0000 - 8.0000i2.0000 - 6.0000i 4.0000 - 9.0000iB =1.0000 + 5.0000i2.0000 + 6.0000i3.0000 + 8.0000i4.0000 + 9.0000iC =1.0e+002 *0.9900 1.1600 - 0.0900i1.1600 + 0.0900i 1.3700【例1.3.3-3】求上例复数矩阵C的实部、虚部、模和相角。

C_real=real(C)C_imag=imag(C)C_magnitude=abs(C)C_phase=angle(C)*180/pi %以度为单位计算相角C_real =99 116116 137C_imag =0 -99 0C_magnitude =99.0000 116.3486116.3486 137.0000C_phase =0 -4.43654.4365 0注:MATLAB中有许多内建函数本例中real、imag、abs、angle都是内建函数。

-能得到–2 吗?【例1.3.3-4】用MATLAB计算38(1)直接计算时,得到的处于第一象限的方根。

a=-8;r=a^(1/3)r =1.0000 + 1.7321i-的全部方根。

(2)计算38m=[0,1,2]; %为3个方根而设R=abs(a)^(1/3); %模的开三次方Theta=(angle(a)+2*pi*m)/3;%-pi<Theta<=pi的3个相角rrr=R*exp(i*Theta)rrr =1.0000 + 1.7321i -2.0000 + 0.0000i 1.0000 - 1.7321i(3)t=0:pi/20:2*pi;x=R*sin(t);y=R*cos(t); plot(x,y,'b:'),grid %画一个半径为R 的圆 hold onplot(rrr(1),'.','MarkerSize',50,'Color','r')%画第一象限的方根 plot(rrr([2,3]),'o','MarkerSize',15,'Color','b')%画另两个根 axis([-3,3,-3,3]),axis square %保证屏幕显示呈真圆hold off1.3.4 计算结果的图形表示【例 1.3.4-1】画出衰减振荡曲线t ey t 3sin 3-=及其它的包络线30t e y -=。

t 的取值范围是]4,0[π。

(图1.3-3)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')%用不同颜色、线型绘制曲线【例 1.3.4-2】画出2222)sin(yx y x z ++=所表示的三维曲面(图1.3-4)。

相关主题