当前位置:文档之家› matlab环境及基本操作

matlab环境及基本操作

实验1 Matlb工具熟悉实验目的:1.熟悉Matlab环境;掌握Matlab的主要窗口及功能;2.学会Matlab的帮助使用;3.掌握向量、矩阵的定义、生成方法和基本运算;4.掌握Matlab的基本符号运算;5.掌握Matlab中的二维图形的绘制和控制..实验内容:1.启动Matlab;说明主窗口、命令窗口、当前目录窗口、工作空间窗口、历史窗口、图形窗口、M文件编辑器窗口的功能..2.实例操作Matlab的帮助使用..3.实例操作向量、矩阵的定义、生成方法和基本运算..4.实例操作Matlab的基本符号运算..5.实例操作Matlab中的二维图形绘制和控制..实验仪器与软件:1.CPU主频在2GHz以上;内存在512Mb以上的PC;2.Matlab 7及以上版本..一、Matlab环境及主要窗口的功能运行Matlab安装目录下的matlab.exe文件可启动Matlab环境;其默认布局如下图:其中;1.主窗口的功能是:主窗口不能进行任何计算任务操作;只用来进行一些整体的环境参数设置;它主要对6个下拉菜单的各项和10个按钮逐一解脱..2.命令窗口的功能是:对MATLAB搜索路径中的每一个M文件的注释区的第一行进行扫描;一旦发现此行中含有所查询的字符串;则将该函数名及第一行注释全部显示在屏幕上..3. 历史窗口的功能是:历史窗口显示命令窗口中的所有执行过的命令;一方面可以查看曾经执行过的命令;另一方面也可以重复利用原来输入的命令行;可以从命令窗口中直接通过双击某个命令行来执行该命令;4.当前目录窗口的功能是:显示当前目录下所有文件的文件名、文件类型、和最后修改的时间;同时还提供搜索功能;在该窗口下;可以改变当前目录5.M文件编辑器窗口的功能是:MATLAN提供了一个内置既有编辑和调试功能好的程序编辑器;编辑器窗口也有菜单和工具栏;是编辑和调试程序非常方便6..发行说明窗口功能是:该窗口显示MATLAB总包和已安装的工具箱的帮助、演示、GUI工具和产品主页等4个内容..7.工作空间窗口的功能是:该窗口显示所有目前内存中MATLAB变量的变量名、数字结构、字节数以及类型;不同的变量类型分别对应不同的变量名图标8.图形窗口的功能是:利用图形窗口和工具栏中的选项;可以对图形进行线性、颜色、标记三维视图、光照和坐标轴等的设置9.GUIGraphacal User Interface窗口功能是:二、Matlab的帮助使用Matlab提供的联机帮助系统使用户在没有任何资料的情况下就能掌握它的使用和基本操作;作为Matlab的用户应熟练掌握其联机帮助系统的使用;下面是Matlab联机帮助系统的使用方法..通过命令窗口中直接输入help命令将会显示当前帮助系统只能怪包含的所有项目help三、向量的定义、生成和基本运算1:向量的生成a:逐个元素直接输入;向量元素需要用“”括起来;元素之间可以用空格、逗号或分号分隔..用空格和逗号分隔生成的行向量用分号分隔生成列向量.例如:h=3 4 5 6 7 8f=3;4;5;6;7;8b:利用冒号表达式创建通过设定“步长step”生成一维行向量;通过格式为:x=x0:step:xn..x0表达向量的首元素值;xn表示尾元素数值限;step表示从第二个元素开始;每一个元素与前一个元素的差值..step=1时;可以省略此项的输入;直接写成x=x0:xn..例:y=0:10:100 x=0:100c:定数线性采样生成设定总点数n下;均匀采样生成一维行向量..通用格式为x=linspacea;b;n..a;b分别是生成向量的第一个和最后一个元素;n是采样总点数..该指令生成的数组相当于由a:a-b/n-1:b生成的数组..缺省n时;生成100维的行向量..clear %清除工空间中的所有变量x=linspace6;66;8y=6:60/7:66z=linspace6;66d:定数对数采样生成向量设定总点数n下;经“常用对数”均匀采样生成一维行向量..通用格式为x=logspacea;b;n ..生成数组的第一个元素值为10a;最后一个元素值为10b ;n为采样总点数;缺省时;生成50维的行向量..例如:clear %清除工作空间的所有变量x=logspace1;8;8y=1:7/7:8xx=10.^yz=logspace1;82:向量元素的引用格式为:向量名下标范围或元素所满足的条件..例:clearrand'state';0 %把均匀分布伪随机发生器置为初始状态x=rand1;8 %产生1×8的均匀分布随机数组x7 %引用数组x的第7个元素y=x1 2 5 %引用数组x的第一、二、五个元素z=x1:3 %引用数组x的前三个元素w=x3:end %引用数组x的从第三个元素以后的元素v=x3:-1:1 %由数组x的前3个元素倒排构成的了数组u=xfindx>0.5 %数组x中大于0.5的元素构成的子数组t=x1 2 3 4 4 3 2 1 %重复引用数组3:向量与标量、向量与向量的运算①四则运算符号有+- / \ . ./ .\a: 标量a与向量x进行四则运算是a分别与x中的每个元素进行四则运算并生一个与x等长的向量..例如clearx=4 5 6 7 8 9 10 11y=3x+3z=x/2-1b:等长的两个向量才能进行四则运算;向量x与y进行四则运算是这两个向量的对应元素分别进行四则运算并生成一个与它们等长的向量..例如clearx=1 2 3 4 5 6y=x2z=x+yw=x.yn=x./yd=x.\y②幂运算.^a:向量x与标量a的幂运算是对x的每一个元素施行幂运算;例如clearx=1 2 3 4 5 6y=x.^3z=3.^yb:向量x与向量y的幂运算是元素对元素的幂运算..例如:clearx=1 2 3 4 5 6y=x2z=x.^yb=y.^x③指数运算、对数运算与开方运算等在MATLAB中;数组的运算实质上是数组内部每个元素的运算;因此;数组的指数运算、对数运算与开方运算等与标量运算完全一样;运算函数分别为“exp”、“log”、“sqrt”等..例如:clearx=3 5 7 9 11 13y=expxz=logx四、矩阵的定义、生成和基本运算1. 矩阵的创建①a:逐个元素直接输入把矩阵元素需用“”括起来;同行元素之间用空格或逗号分隔;行与行之间用分号或回车符分隔矩阵元素可为运算表达式;无任何元素的矩阵称为空矩阵..例如x=1 2 3;4 5 6;7 8 9y=1;2;3;4;5;6;7;8;9k=sinpi/7;cospi/4T=②编写M文件创建大矩阵对于大型矩阵;可通过编写脚本式M 文件;然后运行该文件来创建..例如:编写一名为Example10.m的M 文件;内容如下..%Example10.m%编写一M文件创建矩阵的示例文件..emn=456 344 224 56 36;0 97 665 86 45;29 50 5 124 36;14 38 54 259 178;459 54 145 245 233ans =1/2k^2-1/2kans =1/2a^2x^4+1/2ax^2ans =1/6pi^2③通过函数创建特殊矩阵%Example.m%编写一M文件;通过函数创建特殊矩阵的示例文件..%由函数zeros创建全0矩阵..N=4;M=3;A=1 2 3 4 5;2 3 5 6 1;4 4 4 2 5;B1=zerosM;N %生成M×N阶全0阵..C1=zerossizeA %生成与A同阶的全0阵..A2=onesN %生成N×N阶全1阵..B2=onesM;N %生成M×N阶全1阵..C2=onessizeA %生成与A同阶的全1阵..%由函数eye创建单位矩阵..A2=eyeN %生成N×N阶单位矩阵C2=eyesizeA %生成与A同阶单位矩阵..%由函数rand或randn创建随机矩阵..A3=randN %生成N×N阶均匀分布的随机阵;元素值在0.0;1.0区间内.. B3=randM;N %生成M×N阶均匀分布的随机阵..C3=randsizeA %生成与A同阶阶均匀分布的随机阵..H=hilbN %生成N×N阶Hilbert矩阵..2. 矩阵元素的引用①相对位置引用格式:变量名行标;列标②绝对位置引用格式:变量名绝对位置索引clearrand'state';0A=rand5;3A4 %引用距阵A的第四个元素A2;3 %引用矩阵A的第二行第三列元素3. 矩阵元素的抽取①抽取行clearrand'state';0A=rand5;6A4;: %抽取矩阵A的第四行A2 3;: %抽取矩阵A的第二行和第三行B=A3 3;: %抽取矩阵A的第三行和第三行赋值给BC=A3:end;: %抽取矩阵A的第三行至最后一行赋值给B ②抽取列clearrand'state';0A=rand5;6A:;3 %抽取矩阵A的第三列A:;1 3 %抽取矩阵A的第一列和第三列B=A:;3 1 %抽取矩阵A的第三列和第一列赋值给B③抽取块clearrand'state';0A=rand3;4B=A1 2;2 3 %抽取矩阵A的第一、二行与第二、三列交叉的元素赋值给B④抽取矩阵对角线上的元素clearrand'state';0A=rand6 %产生6×6的均匀分布随机数组V=diagA %抽取矩阵A的主对角线上的元素赋值给向量VD=diagV %以向量V为对角线元素生成对角矩阵D1=diagV;2D2=diagV;-2U=diagA;1 %抽取矩阵A的主对角线上方第一条对角线的元素赋值给向量UL=diagA;-1 %抽取矩阵A的主对角线下方第一条对角线的元素赋值给向量L⑤抽取矩阵上三角部分和下三角部分clearrand'state';0A=rand5 %产生5×5的均匀分布随机数组U=triuA;1 %从矩阵A的主对角线上方第一条对角线开始抽取A的上三角部分U=triuA;-1 %从矩阵A的主对角线下方第一条对角线开始抽取A的上三角部分L1=trilA;1L2=trilA;-14. 矩阵的基本数学运算①矩阵的四则运算+ - / \与线性代数理论一致;其中;A\B=invAB=A^-1B..clearA=3 2 3 0;2 1 -4 6B=-1 3;4 1;6 0;7 9C=A+B'D=ABE=B/DF=D\A②矩阵与常数间的运算+ - / \ ^同线性代数理论一致;需注注的是;当进行数除时;常数通常只能做除数..clearA=1 2 3 0;2 1 -4 6C=A+2D=A2E=A/2F=2\AG=A1 2;1 2^2③矩阵的数组运算.+ .- . ./ .\ .^是指同维数组间对应元素之间的加、减、乘、除和幂运算;其中“.+”和“ .-”分别与“+”和“-”相同;所以;“.+”和“ .-”一般不用..clearA=7 2 8 0;5 1 -4 6B=A+2C=A.BD=A./BE=B.\AF=A.^2④矩阵的基本初等运算clearA=1 2 3 0;2 1 -4 6;-1 3 4 1;6 0 7 9A2;:=A2;:2 %2乘A的第二行A1;:=A1;:+A2;: %2乘A的第二行;加到A的第一行A2 3;:=A3 2;: %交换A的第二行和第三行⑤矩阵的逆运算clearA=1 2 3 0;2 1 -4 6;-1 3 4 1;6 0 7 9 B=invA⑥矩阵的行列式运算clearA=1 2 3 0;2 1 -4 6;-1 3 4 1;6 0 7 9 B=detA⑦矩阵的指数运算clearA=1 2 3 0;2 1 -4 6;-1 3 4 1;6 0 7 9B=expmA⑧矩阵的对数运算clearA=4 2 3 2;2 1 4 6;1 3 4 1;6 4 7 9B=expmAC=logmBD1=logmAD2=logA⑨矩阵的开方运算clearA=9 2 3 2;2 1 4 6;1 3 4 1;6 4 7 9B=A^2C=sqrtmBB1=sqrtmAB2=sqrtA5. 矩阵的一些特殊操作①变维方法:“:”和函数“reshape”..reshapeA;M;N %将已知矩阵变维成M×N阶矩阵reshapeA;M;N;p;… %将已知矩阵变维成M×N×P×…阶矩阵cleara=1:12;A=reshapea;3;4c=zeros2;6;c:=a:②矩阵的变向..cleara=1:12;A=reshapea;3;4k=3;dim=1;A1=rot90A;A2=rot90A;k;A3=fliplrA ;A4=flipudA ;A5=flipdimA;dim ;②矩阵的扩展与收缩..cleara=1:12;A=reshapea;3;4B=eye3;2C=ones2;6D=A B;C %利用小矩阵的组合来生成大矩阵D6:10;9:10=4 %利用对矩阵标识块的赋值命令生成大矩阵D:;3:end= %将矩阵标识块置为空以收缩矩阵五、多项式的定义、生成和基本运算1. 多项式的表示对于多项式n n n n n a x a x a x a x P ++++=--1110)(用行向量],,,[110n n a a a a P -= 表示;把多项式问题转化为向量问题..2. 多项式的创建①直接输入系数向量由于在MATLAB 中的多项式是以向量形式储存的;因此;直接输入多项式对应的向量;MATLAB 会自动将向量元素按降幂顺序分配给各项系数值;向量可以为行向量;也可以是列向量..例如:输入多项式:336523-+-x x xp=1 -5 6 -33;poly2symp%poly2sym②通过特征多项式创建也就是从矩阵求其特征多项式获得..例如:A=1 2 3;4 5 6;7 8 9p=polyApoly2symp③由多项式的根创建多项式root=7 -3+6i -3-4i;p=polyrootpoly2symp3. 多项式运算①求多项式的值一般调用函数polyval进行计算;例如:p=1 11 55 125;b=6 2;0 -1;polyvalp;b②求多项式的根求多项式的根可以有两种方法;一种是直接调用函数roots求解多项式的所有根;另一种是通过建立多项式的伴随矩阵再求其特征值的方法得到多项式的所有根..两种方法求得的根是相等的..例如:p=2 -5 6 -1 9;rootspP=companpeigp3. 多项式的乘除法运算多项式的乘法由函数conv来实现;除法则由函数deconv来实现;例如:p=2 -5 6 -1 9;poly2sympd=3 -90 -18;poly2symdpd=convp;dpoly2sympdp1=deconvpd;d4. 多项式的微分多项式的微分由函数polyder来实现;例如:p=2 -5 6 -1 9;poly2sympDp=polyderppoly2symDp5. 多项式拟合多项式拟合的实现;一面可以由矩阵的除法求解超定方程来进行;另一方面可调用函数polyfit来实现;调用方法如下:p;s=polyfitX;Y;n其中;X、Y为拟合数据;n为拟合多项式的次;p为拟合多项式的系数向量;s为拟合多项式系数向量的结构信息;例如:x=0:pi/20:pi/2;y=sinx;p=polyfitx;y;5x1=0:pi/30:pi2;y1=sinx1;y2=polyvalp;x1;plotx1;y1;'b-';x1;y2;'r+'legend'原曲线';'拟合曲线'axis0 7 -1.2 9五、Matlab的基本符号运算1:符号表达式的生成⑴用引号来生成符号表达式;例如f='expx';f='ax^2+bx+c=0';f='Dy-y=x'⑵用sym来生成符号表达式;例如f=sym'expx';f=sym'ax^2+bx+c=0'⑶用函数syms来生成符号函数;例如syms y u;p=expy/u2符号表达式的运算⑴提取分子、分母;例如f=sym'ax^2/b-x'n;d=numdenf3符号表达式的基本运算4符号表达式的高级运算a:符号表达式的复合函数运算通过compose来实现;例如syms x y t;f=1/x^3;g=tany;composeg;fcomposeg;f;tb:符号表达式的反函数运算通过函数finverse来实现;例如f=sym1/sinx;g=finversefc:符号表达式的符号和运算通过函数symsum来实现;例如k=sym'k';symsumksymsumk;0;n-1symsum1/k^2;1;inf3符号与数值间的转换及符号的可变精度运算a:符号表达式转换成数值表达式p='1+sqrt2/2';evalpb:数值表达式转换成符号表达式;例如p=1.7071;n=sympn =17071/100004:符号表达式的简化a:见符号表达式类似于数学课本中的形式显示;例如sym x;f=taylorexp-xf=1-x+1/2x^2-1/6x^3+1/24x^4-1/120x^5prettyfb:合并符号表达式中的同类项;例如syms x y;f=symx^2y+yx-x^2-2x;f=collectff=y-1x^2+y-2xf=collectf;yf=x^2+xy-x^2-2xc:对符号表达式进行因式分解;例如syms x;f=symx^7-1;f=factorff=x-1x^2+x+1x^6+x^3+1d:对符号表达式进行展开;例如syms x y;f=expandx+1^3f=x^3+3x+1s=expandsinx+ys=sinxcosysinye:对符号表达式进行简化;例如syms x;f=symx-1^3/x-1;f=simplifyff=x-1^2simplef5:符号微积分a:符号极限;例如syms x y;limitsinx+y-sinx/y;y;0b:符号微分syms x;symx-1^3c:符号积分;例如syms u alpha;intsinalphau;alpha6:符号方程求解a:符号代数线性方程求解;例如solve'psinx=r'solve'ax^2+bx+c';'a'b:符号代数非线性方程求解;例如六、Matlab中的二维图形绘制和控制1:绘制一个正弦函数图象x=0:0.1:2pi;y=sinx;plotx;y在图形中绘制坐标网格x=0:0.1:2pi;y=sinx;plotx;ygrid on取消坐标中的网格x=0:0.1:2pi;y=sinx;plotx;ygrid ongrid offx=0:0.1:2pi;y=sinx;z=cosx;plotx;y;x;zx=0:0.1:2pi;y=sinx;z=cosx;plotx;y;'g:diamond';x;z;'b'x=0:0.1:2pi;y=sinx;z=cosx;plotx;y;'g:diamond';x;z;'b'axis equal七、实验总结- 21 -。

相关主题