1.2MATLAB的特点1、解释执行2、变量单一3、语法限制不严格4、一流的数值计算功能5、图形功能强大6、强劲的工具箱是一个强大的功能演算性草稿纸1.3MATLAB的组成MATLAB软件由四部分组成:1、基本部分(核心):程序主体和基本函数(约700多个)。2、专业扩展部分(工具箱):由大量专业函数组成(上千个函数)。已有30多个工具箱。1.3MATLAB的组成MATLAB软件由四部分组成:3、符号数学工具箱:基于Maple软件的符号数学引擎。4、仿真工具箱(Simulink):用于建立系统的数学模型和仿真分析等。1.4MATLAB界面☆命令窗口(commandwindow)☆历史命令窗口(commandhistory)☆当前目录窗口(currentdirectory)☆工作区窗口(workspace)☆已安装部件窗口(launchpad)菜单(Menu)窗口(Windows)1.4MATLAB界面菜单(Menu)命令窗口历史窗口和当前目录窗口工作区窗口和安装部件窗口当前路径1.5MATLAB通用命令1、help(帮助)help(显示已安装的函数库和工具箱)help子目录名/库名/工具箱如:helpgeneralhelpcommhelp函数名如:helpsin1.5MATLAB通用命令2、lookfor关键字(查找)如:lookforsound3、clc(清除命令窗)4、who(列出工作区中的内存变量)whos(列出工作区中的内存变量详情)5、clear(清除工作区中的变量和函数)1.5MATLAB通用命令6、edit(调用编辑器,编写程序)7、!(运行外部程序)如:!dir;!calc(计算器)8、demo(MATLAB演示程序)9、quit(退出MATLAB)10、上下箭头(调出历史命令)第2章MATLAB基本语法2.1变量1、标识符:表示变量名,常量名,函数名和文件名的字符串(1)由字母、数字、下划线等符号组成,第一个字母必须是英文字母。(2)最长不要超过19个字符,多余截取。(3)文件名还必须符合操作系统的要求。(4)变量名大小写敏感。2.1变量(5)MATLAB中的特殊变量名,应避免使用。例如:ans----默认临时变量pi----πeps----计算机中的最小数inf----无穷大NaN----非数或不定数(如:0/0)i或j----虚数单位2.1变量2、变量类型:(2)字符(串):用单引号表示。如:a=’abc’实际上是一个由个字符的ASCII码组成的行向量。2.1变量3、矩阵◆MATLAB中的变量或常量都代表一个矩阵,所有的变量运算其实都是矩阵运算。单个值实际上是1*1阶矩阵。◆矩阵元素可以是数值(实数或复数)或字符串。◆一个由矩阵表示的变量可以是一个数、一组数、一个文件(如语音)、一幅图象等。2.1变量3、矩阵◆矩阵(Matrix)与数组(Array)的关系:矩阵运算有着严格理论数组运算一般指元素运算2.1变量4、变量的查看:who/whos5、变量的保存和恢复:save文件名(缺省后缀为.mat)例如:savemyvarload文件名例如:loadmyvar2.2矩阵的赋值1、矩阵的直接赋值(1)基本赋值1)使用[]2)同一行元素用空格或‘,’隔开3)不同行用‘;’隔开例如:a=[123;456](2)复数的赋值:例如:z=1+2i或1+2jz=[1+2i3+4i]z=[13]+[24]*i2.2矩阵的赋值注意:①赋值结尾为“;”则不显示结果。②一行不够时,可用“…”换行。③矩阵的阶数也可通过下列函数获得:对于一维,m=length(a)为矩阵a的长度。例如:a=[123]length(a)为32.2矩阵的赋值注意:③矩阵的阶数也可通过下列函数获得:对于二维,[m,n]=size(a),m为行数,n为列数例如:a=[123;456]size(a)为[23]2.2矩阵的赋值2、矩阵元素的赋值(1)元素用(m,n)的形式表示第m行n列的元素值,可直接引用和赋值。例如,a(2,1)=4,若将其改为9,则可用a(2,1)=9。注意:如果元素下标超出原矩阵的维数,矩阵将自动扩大,多出的元素自动为0。2.2矩阵的赋值2、矩阵元素的赋值(2)给全行或全列赋值:用“:”代替行或列。如:a(4,:)=[11121314];a(:,5)=[5;8;10;12]注意:行数或列数必须与原矩阵相同。2.2矩阵的赋值3、矩阵的变换(1)抽取:由原矩阵中的部分元素构成新矩阵。如:b=a([2,4],[1,3])表示第2,4行与第1、3列交叉元素组成新矩阵。2.2矩阵的赋值3、矩阵的变换(2)抽去:使用空矩阵[](无元素),将矩阵整行/列删除。如:a([2,4],:)=[]将2、4行删除a(:,[2])=[]将第2列删除2.2矩阵的赋值3、矩阵的变换(3)组合:由多个矩阵组成一个新矩阵,但行列应正好。如:a=[123;456],b=[789;101112],c=[ab],d=[a;b]。(4)转置:b=a’(行变列)例如:a=[123;456],则a’=[14;25;36]2.2矩阵的赋值(5)排列:b=a(:)将所有列排成一列。例如:a=[123;456],a(:)=[1;4;2;5;3;6]若先转置再排列,即实现按行排列。(6)变换函数:fliplr(a)(矩阵左右翻转)(flip翻leftright)flipud(a)(矩阵上下翻转)。。。。。。3、矩阵的变换2.2矩阵的赋值4、间隔赋值(适合批量数据)(1)变量=(first:increment:last)形式如:t=(0:0.1:1)则t=[0,0.1,0.2,…,1](2)线性间隔函数linspace(first,last,num)从first开始到last结束共num个元素,间隔为(last-first)/(num-1)如:t=linspace(0,1,11),t=[0,0.1,…,1]2.2矩阵的赋值4、间隔赋值(适合批量数据)(3)对数间隔函数logspace(first,last,num)从10first开始到10last结束共num个元素如:t=logspace(0,1,11),t=[100,100.1,…,101]2.2矩阵的赋值5、基本矩阵(1)空阵:[](当操作无结果时,返回空阵)(2)全0矩阵:zeros(m,n)例如:zeros(2,3)=[000;000](3)全1矩阵:ones(m,n)(4)单位矩阵:eye(n)(对角线为1的方阵)(4)随机矩阵:rand(m,n)2.3矩阵的初等运算1、加减法:矩阵的加减就是对应元素的加减。如:a=[123];b=[456],则a+b=[578],如果矩阵与一常数(标量)相加减,则把该常数看成是同阶的矩阵。例如:a+5=[678]2.3矩阵的初等运算2、乘法(1)矩阵相乘:m×p阶矩阵A与p×n阶矩阵B的乘积是一个m*n阶矩阵。例如:a=[123];b=[456]则:a*b’=[20].(2)矩阵与常数相乘等于每个元素乘以该常数,例:2*a。2.3矩阵的初等运算2、乘法(3)矩阵元素相乘(数组相乘):使用“.*”相乘的两个矩阵阶数应相同。例如:a=[123];b=[456]则:a.*b=[41018].2.3矩阵的初等运算3、除法(1)矩阵的除法右除,“/”:A/B=A*B-1(B的逆矩阵inv(B)),B必须是方阵,A与B列应相等。左除,“\”:A\B=A-1*B,A必须是方阵,A与B行应相等。(2)矩阵除以常数,等于每个元素除以常数,使用普通除法/。2.3矩阵的初等运算3、除法(3)矩阵元素的除法(数组相除):“./”:A./B为A各元素除以B中各元素。“.\”:A.\B=B./A2.3矩阵的初等运算4、乘方(1)矩阵乘方:(乘方是乘法的扩充,为保证合法性,要求矩阵为方阵)a)A^标量:例A^2,A^0.2b)标量^A:例A=[12;34],2^A=[10.482714.1519;21.227831.7106]2.3矩阵的初等运算4、乘方(2)元素的乘方:a)A.^标量:例A=[12],A.^2=[14]b)标量.^A:例3.^A=[39]c)A.^B:A、B同阶例A=[12],B=[34],则A.^B=[116]2.4矩阵的基本运算函数1、矩阵的运算函数指数函数:expm()对数函数:logm()开方函数:sqrtm()注意:变量必须是方阵2.4矩阵的基本运算函数2、矩阵元素的运算◆三角函数(25个):例如:t=[123],y=sin(t)◆指数/对数函数(7个):例如:exp()◆复数函数(8个):例如:abs()取模◆取整函数(7个):例:round()四舍五入2.5矩阵的逻辑运算1、关系运算:共6种:〉(大于)〈(小于)〉=(大于等于)〈=(小于等于)==(等于)~=(不等于)◆比较是在元素间进行的。◆矩阵必须同阶◆比较结果仍为矩阵,且元素值为0(假)或1(真)例如:a=[12],b=[21],则a〉b=[01],a==b=[00]2.5矩阵的逻辑运算2、逻辑运算:共有四种运算符号:&(与)、|(或)、~(非)、xor(异或)◆矩阵元素值必须为逻辑值(0、1)◆运算是在元素间进行的。◆比较结果仍为矩阵例如:a=[10],b=[01],则:a&b=[00]第3章MATLAB基本绘图3.1基本二维绘图一、plot-----基本二维绘图函数1、格式1:plot(y)功能:y是一向量,以y中元素的下标为横坐标,元素值作为纵坐标,各点以直线相连。例如:y=[12321];plot(y)3.1基本二维绘图►如果格式1中的y为复数矩阵,则相当于plot(real(y),imag(y))。►如果y为多行或多列矩阵,则绘制多条曲线。例如:y2=[sin(2*pi*t);cos(2*pi*t)];plot(t,y2);2、格式2:plot(x,y)功能:x,y具有相同的长度,绘图时以x元素值为横坐标,y元素值作为纵坐标,各点以直线相连。例如:t=(0:0.05:1);y=sin(2*pi*t);plot(t,y);3.1基本二维绘图3、格式3:plot(x1,y1,x2,y2,…)功能:相当于,plot(x1,y1),plot(x2,y2),…,绘制多条曲线在一个图中。例如:t1=(0.5:0.05:1.5);y1=2*sin(2*pi*2*t1);plot(t,y,t1,y1);3.1基本二维绘图4、格式4:plot(y,’s’)plot(x,y,’s’)plot(x1,y1,’s1’,x2,y2,’s2’…)s为一字符串,用于设置绘图颜色和线型(见P32)例如;plot(t,y,’*b’);plot(t,y,’xr’,t1,y1,’:k’)3.1基本二维绘图二、多曲线绘图控制1、图形保持格式:holdon(off)功能:用于保持当前绘图,以便在同一坐标上再绘制另外图形。例如:plot(t,y);holdon;plot(t1,y1)3.1基本二维绘图2、子图控制格式:subplot(m,n,p)功能:将窗口分成m(行)*n(列)个子图,并指定在第p个子图中绘图例如:subplot(3,2,2);plot(t,y);subplot(3,2,3);plot(t1,y1);3.1基本二维绘图3、窗口控制格式:figure(n)功能:打开一个新窗口用于当前绘图,n为该窗口的句柄(唯一标识),用于在多个窗口中绘图。例如:figure(1);plot(t,y);figure(2);plot(t1,y1);3.1基本二维绘图1、title(‘s’)——给图形加标题例如:plot(t,y);title(‘sinewave’)2、xlabel(‘s’)——给x轴加标注例如:xlabel(‘t(s)’)3、ylabel(‘s’)——给y轴加标注例如:ylabel(‘V(mv)’)六、图形控制3.1基本二维绘图4、text(x,y,’s’)—在图形指定位置(x,y)加标注例如:text(0.5,0.8,’t=0.