1、二、Matlab的帮助使用Matlab提供的联机帮助系统使用户在没有任何资料的情况下就能掌握它的使用和基本操作,作为Matlab的用户应熟练掌握其联机帮助系统的使用,下面是Matlab联机帮助系统的使用方法。通过命令窗口中直接输入help命令将会显示当前帮助系统只能怪包含的所有项目help 三、向量的定义、生成和基本运算1:向量的生成 a:逐个元素直接输入,向量元素需要用“”括起来,元素之间可以用空格、逗号或分号分隔。用空格和逗号分隔生成的行向量用分号分隔生成列向量.例如:h=3 4 5 6 7 8 f=3;4;5;6;7;8 b:利用冒号表达式创建 通过设定“步长(step)”生成一维行向量
2、,通过格式为:x=x0:step:xn。x0表达向量的首元素值,xn表示尾元素数值限,step表示从第二个元素开始,每一个元素与前一个元素的差值。step=1时,可以省略此项的输入,直接写成x=x0:例:y=0:10:100 x=0:c:定数线性采样生成 设定总点数n下,均匀采样生成一维行向量。通用格式为x=linspace(a,b,n)。a,b分别是生成向量的第一个和最后一个元素,n是采样总点数。该指令生成的数组相当于由a:(a-b)/(n-1):b生成的数组。缺省n时,生成100维的行向量。clear %清除工空间中的所有变量x=linspace(6,66,8)y=6:60/7:66z=l
3、inspace(6,66) d:定数对数采样生成向量 设定总点数n下,经“常用对数”均匀采样生成一维行向量。通用格式为x=logspace(a,b,n) 。生成数组的第一个元素值为10a,最后一个元素值为10b ,n为采样总点数,缺省时,生成50维的行向量。clear %清除工作空间的所有变量x=logspace(1,8,8)y=1:7/7:8xx=10.yz=logspace(1,8) 2:向量元素的引用格式为:向量名(下标范围或元素所满足的条件)。clearrand(state,0) %把均匀分布伪随机发生器置为初始状态x=rand(1,8) %产生(18)的均匀分布随机数组x(7) %引
4、用数组x的第7个元素y=x(1 2 5) %引用数组x的第一、二、五个元素z=x(1:3) %引用数组x的前三个元素w=x(3:end) %引用数组x的从第三个元素以后的元素v=x(3:-1:1) %由数组x的前3个元素倒排构成的了数组u=x(find(x0.5) %数组x中大于0.5的元素构成的子数组 t=x(1 2 3 4 4 3 2 1) %重复引用数组 3:向量与标量、向量与向量的运算 四则运算符号有( * / .* ./ .) a: 标量a与向量x进行四则运算是a分别与x中的每个元素进行四则运算并生一个与x等长的向量。例如x=4 5 6 7 8 9 10 11y=3*x+3z=x/2
5、-1p=4x b:等长的两个向量才能进行四则运算,向量x与y进行四则运算是这两个向量的对应元素分别进行四则运算并生成一个与它们等长的向量。x=1 2 3 4 5 6y=x*2z=x+yw=x.*yn=x./yd=x.y 幂运算(.)a:向量x与标量a的幂运算是对x的每一个元素施行幂运算,例如y=x.3z=3.y 向量x与向量y的幂运算是元素对元素的幂运算。z=x.yb=y.x 指数运算、对数运算与开方运算等在MATLAB中,数组的运算实质上是数组内部每个元素的运算,因此,数组的指数运算、对数运算与开方运算等与标量运算完全一样,运算函数分别为“exp”、“log”、“sqrt”等。x=3 5 7
6、 9 11 13y=exp(x)z=log(x)t=sqrt(x) 四、矩阵的定义、生成和基本运算1. 矩阵的创建 a:逐个元素直接输入 把矩阵元素需用“ ”括起来,同行元素之间用空格或逗号分隔,行与行之间用分号或回车符分隔 矩阵元素可为运算表达式,无任何元素的矩阵称为空矩阵。x=1 2 3;4 5 6;7 8 9 y=1,2,3;4,5,6;7,8,9 k=sin(pi/7),cos(pi/4)T= 编写M文件创建大矩阵 对于大型矩阵,可通过编写脚本式M文件,然后运行该文件来创建。编写一名为Example10.m的M文件,内容如下。%Example10.m%编写一M文件创建矩阵的示例文件。e
7、mn=456 344 224 56 36;0 97 665 86 45;29 50 5 124 36;14 38 54 259 178;459 54 145 245 233 ans =1/2*k2-1/2*k1/2*a2*x4+1/2*a*x21/6*pi2 通过函数创建特殊矩阵%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=zeros(M,N) %生成MN阶全0阵。C1=zeros(size(A) %生成与A同阶的全0阵。A2=ones(N) %生成NN阶
8、全1阵。B2=ones(M,N) %生成MC2=ones(size(A) %生成与A同阶的全1阵。%由函数eye创建单位矩阵。A2=eye(N) %生成NN阶单位矩阵C2=eye(size(A) %生成与A同阶单位矩阵。%由函数rand或randn创建随机矩阵。A3=rand(N) %生成NN阶均匀分布的随机阵,元素值在(0.0,1.0)区间内。B3=rand(M,N) %生成MN阶均匀分布的随机阵。C3=rand(size(A) %生成与A同阶阶均匀分布的随机阵。H=hilb(N) %生成NN阶Hilbert矩阵。 2. 矩阵元素的引用相对位置引用格式:变量名(行标,列标)绝对位置引用格式:
9、变量名(绝对位置索引),0)A=rand(5,3)A(4) %引用距阵A的第四个元素A(2,3) %引用矩阵A的第二行第三列元素 3. 矩阵元素的抽取 抽取行A=rand(5,6)A(4,:) %抽取矩阵A的第四行A(2 3,:) %抽取矩阵A的第二行和第三行B=A(3 3,:) %抽取矩阵A的第三行和第三行赋值给BC=A(3:end,:) %抽取矩阵A的第三行至最后一行赋值给B 抽取列A(:,3) %抽取矩阵A的第三列,1 3) %抽取矩阵A的第一列和第三列B=A(:,3 1) %抽取矩阵A的第三列和第一列赋值给B抽取块A=rand(3,4)B=A(1 2,2 3) %抽取矩阵A的第一、二行
10、与第二、三列交叉的元素赋值给B 抽取矩阵对角线上的元素A=rand(6) %产生(66)的均匀分布随机数组V=diag(A) %抽取矩阵A的主对角线上的元素赋值给向量VD=diag(V) %以向量V为对角线元素生成对角矩阵D1=diag(V,2)D2=diag(V,-2)U=diag(A,1) %抽取矩阵A的主对角线上方第一条对角线的元素赋值给向量UL=diag(A,-1) %抽取矩阵A的主对角线下方第一条对角线的元素赋值给向量L 4. 矩阵的基本数学运算 矩阵的四则运算(+ - * / )与线性代数理论一致,其中,AB=inv(A)*B=A-1*B。A=3 2 3 0;2 1 -4 6B=-
11、1 3;4 1;6 0;7 9C=A+BD=A*BE=B/DF=DA 矩阵与常数间的运算(+ - * / )同线性代数理论一致,需注注的是,当进行数除时,常数通常只能做除数。A=1 2 3 0;C=A+2D=A*2E=A/2 F=2A G=A(1 2,1 2)2 矩阵的数组运算(.+ .- .* ./ . .)是指同维数组间对应元素之间的加、减、乘、除和幂运算,其中“.+”和“ .-”分别与“+”和“-”相同,所以,“.+”和“ .-”一般不用。A=7 2 8 0;5 1 -4 6B=A+2C=A.*BD=A./BE=B.AF=A.2 矩阵的基本初等运算2 1 -4 6;-1 3 4 1;6
12、0 7 9A(2,:)=A(2,:)*2 %2乘A的第二行A(1,:)=A(1,:)+A(2,:) %2乘A的第二行,加到A的第一行)=A(3 2,:) %交换A的第二行和第三行 矩阵的逆运算B=inv(A) 矩阵的行列式运算B=det(A) 矩阵的指数运算B=expm(A) 矩阵的对数运算A=4 2 3 2;2 1 4 6;1 3 4 1;6 4 7 9C=logm(B)D1=logm(A)D2=log(A) 矩阵的开方运算A=9 2 3 2;B=A2C=sqrtm(B)B1=sqrtm(A)B2=sqrt(A) 5. 矩阵的一些特殊操作 变维方法:“:”和函数“reshape”。resha
13、pe(A,M,N) %将已知矩阵变维成MN阶矩阵reshape(A,M,N,p,) %将已知矩阵变维成MNP阶矩阵a=1:12;A=reshape(a,3,4)c=zeros(2,6);c(:)=a(:) 矩阵的变向。k=3;dim=1;A1=rot90(A);A2=rot90(A,k);A3=fliplr(A) ;A4=flipud(A) ;A5=flipdim(A,dim) ; 矩阵的扩展与收缩。B=eye(3,2)C=ones(2,6)D=A B;C %利用小矩阵的组合来生成大矩阵D(6:10,9:10)=4 %利用对矩阵标识块的赋值命令生成大矩阵D(:,3:end)= %将矩阵标识块置
14、为空以收缩矩阵五、多项式的定义、生成和基本运算 1. 多项式的表示对于多项式用行向量表示,把多项式问题转化为向量问题。2. 多项式的创建直接输入系数向量由于在MATLAB中的多项式是以向量形式储存的,因此,直接输入多项式对应的向量,MATLAB会自动将向量元素按降幂顺序分配给各项系数值,向量可以为行向量,也可以是列向量。输入多项式:p=1 -5 6 -33;poly2sym(p)%poly2sym 通过特征多项式创建也就是从矩阵求其特征多项式获得。A=1 2 3;7 8 9p=poly(A)poly2sym(p) 由多项式的根创建多项式root=7 -3+6i -3-4i;p=poly(roo
15、t)poly2sym(p) 3. 多项式运算求多项式的值一般调用函数polyval进行计算,例如:p=1 11 55 125;b=6 2;0 -1;polyval(p,b) 求多项式的根求多项式的根可以有两种方法,一种是直接调用函数roots求解多项式的所有根;另一种是通过建立多项式的伴随矩阵再求其特征值的方法得到多项式的所有根。两种方法求得的根是相等的。p=2 -5 6 -1 9;roots(p)P=compan(p)eig(p) 3. 多项式的乘除法运算多项式的乘法由函数conv来实现,除法则由函数deconv来实现,例如:d=3 -90 -18;poly2sym(d)pd=conv(p,
16、d)poly2sym(pd)p1=deconv(pd,d) 4. 多项式的微分多项式的微分由函数polyder来实现,例如:Dp=polyder(p)poly2sym(Dp) 5. 多项式拟合多项式拟合的实现,一面可以由矩阵的除法求解超定方程来进行;另一方面可调用函数polyfit来实现,调用方法如下:p,s=polyfit(X,Y,n)其中,X、Y为拟合数据,n为拟合多项式的次,p为拟合多项式的系数向量,s为拟合多项式系数向量的结构信息,例如:pi/20:pi/2;y=sin(x);p=polyfit(x,y,5)x1=0:pi/30:pi*2;y1=sin(x1);y2=polyval(p
17、,x1);plot(x1,y1,b-,x1,y2,r+)legend(原曲线,拟合曲线axis(0 7 -1.2 9) 五、Matlab的基本符号运算1:符号表达式的生成用引号来生成符号表达式,例如f=exp(x);a*x2+b*x+c=0Dy-y=x 用sym来生成符号表达式,例如f=sym();用函数syms来生成符号函数,例如syms y u;p=exp(y/u) 2符号表达式的运算 提取分子、分母,例如 f=sym(a*x2/(b-x)n,d=numden(f) 3符号表达式的基本运算4符号表达式的高级运算符号表达式的复合函数运算通过compose来实现;syms x y t;f=1/
18、x3;g=tan(y);compose(g,f)compose(g,f,t) b:符号表达式的反函数运算通过函数finverse来实现;f=sym(1/sin(x);g=finverse(f) c:符号表达式的符号和运算通过函数symsum来实现; k=sym(ksymsum(k)symsum(k,0,n-1)symsum(1/k2,1,inf) 3符号与数值间的转换及符号的可变精度运算a:符号表达式转换成数值表达式p=1+sqrt(2)/2eval(p)数值表达式转换成符号表达式;p=1.7071;n=sym(p) n =17071/10000 4:符号表达式的简化见符号表达式类似于数学课本
19、中的形式显示;sym x;f=taylor(exp(-x)f=1-x+1/2*x2-1/6*x3+1/24*x4-1/120*x5pretty(f)合并符号表达式中的同类项;syms x y;f=sym(x2*y+y*x-x2-2*x);f=collect(f)f=(y-1)*x2+(y-2)*xf=collect(f,y)f=(x2+x)*y-x2-2*x 对符号表达式进行因式分解;syms x;f=sym(x7-1);f=factor(f)f=(x-1)*(x2+x+1)*(x6+x3+1)d:对符号表达式进行展开;f=expand(x+1)3)f=x3+3*x+1s=expand(sin
20、(x+y)s=sin(x)*cos(y)*sin(y) e:对符号表达式进行简化; syms x; f=sym(x-1)3/(x-1); f=simplify(f) f=(x-1)2 simple(f) 5:符号微积分符号极限;limit(sin(x+y)-sin(x)/y,y,0)符号微分sym(x-1)3) 符号积分;syms u alpha;int(sin(alpha*u),alpha) 6:符号方程求解符号代数线性方程求解; solve(p*sin(x)=rsolve(a*x2+b*x+ca) 符号代数非线性方程求解; 六、Matlab中的二维图形绘制和控制绘制一个正弦函数图象0.1:
21、2*pi;plot(x,y) 在图形中绘制坐标网格plot(x,y) grid on 取消坐标中的网格plot(x,y) grid ongrid off x=0: z=cos(x);plot(x,y,x,z) x=0:plot(x,y,g:diamond,x,z,baxis equal 七、实验总结 通过本次实验,对Matlab有了一定的认识和了解。快速的熟悉了Matlab环境,掌握Matlab的主要窗口及功能;学会了Matlab的帮助使用;由于只是刚刚学习,只是粘贴代码,并不会自己编写代码。然后学习掌握向量、矩阵的定义、生成方法和基本运算、掌握Matlab的基本符号运算及二维图形的绘制和控制。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1