已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一 基础知识主要内容:1) Matlab简介, 了解MATLAB界面2) 矩阵的生成与调用方法3) 矩阵的基本运算4) M-文件的编写Matlab名字由Matrix和Laboratory两词的前3个字母组合而成。它是以矩阵操作和运算为基础的一门语言,该语言的集成环境、或操作平台称为Matlab软件。它的创始人是美国新墨西哥大学的Cleve Moler教授。Matlab以商品的形式出现是在1984年由MathWorks公司推出的,它是国际控制界公认的标准计算软件。尤其是数值计算方面,在30多个国际上通用的数学类应用软件中独占鳌头。MATLAB基本操作 数组与矩阵一、 数值运算:1、 x=3+4*5-6/3+23 x =292、 x=3+4*5-6/3+23; 无结果,强调;作用3、 命令行编写: a=3;b=4;y=a*b+a/b y =12.7504、 常用的函数:sin(x),cos(x),sqrt(x),abs(x),exp(x),log(x),log2(x),log10(x),real(x),imag(x),conj(x)(共轭复数),rat(x),rem(x).round(x).介绍help,demo命令help conj demo5、 练习:(sin(pi/4)+sqrt(36)/(32(0.2) ans =3.3536二、 向量、矩阵的建立:向量:1、X=1:5 X =1 2 3 4 52、X=1:2:5 X = 1 3 53、X=5:-2:1 X =5 3 1 % 以:起始值=5、增量值=-2、终止值=1的矩阵(用“:”生成)4、X=linspace(0,1,5) X = 0 0.2500 0.5000 0.7500 1.0000% 利用linspace,以区隔起始值=0终止值=1之间的元素数目=5(线性等分向量)5、X=logspace(0,4,5)X =1 10 100 1000 100006、介绍键盘操作;7、练习:让同学们反复操作。矩阵:1、利用直接赋值语句: A=2 3 4;2 3 4;25 2 5 强调符号2、 利用函数zeros(n),ones(n),eye(n),pascal(n),magic(n),rand(n),三、 矩阵的调用;1、X=4 10 1 6 2;8 2 9 4 7;7 5 7 1 5;0 3 4 5 4;23 13 13 0 3X = 4 10 1 6 2 8 2 9 4 7 7 5 7 1 5 0 3 4 5 423 13 13 0 3强调一维或二维下标存取矩阵;end代表某一维的最大值。A(2,3) = A(12)A(4:5,2:3)=A(9 14;10 15)A(1:5,5)=A(:,5)=A(21:25)=A(1:end,end)=A(21:end)A(1 3,2 4)=A(1:2:3,2:2:4)A(1:2:3,4:-1:2)2、找出矩阵中所有绝对值大于3的元素。A=zeros(2,5);%预生成一个(2*5)全零数组A(:)=-4:5%运用“全元素”赋值法获得AL=abs(A)3%产生与A同维的“0-1”逻辑值数组矩阵islogical(L)%判断L是否逻辑值数组。输出若为1,则是。X=A(L)%把L中逻辑值1对应的A元素取出 A = -4 -2 0 2 4 -3 -1 1 3 5L = 1 0 0 0 1 0 0 0 0 1ans = 1X = -4 4 5 find(abs(A)3) A(find(abs(A)3)i,j=find(abs(A)3)3、x=rand(4,5) x(find(x0.5) 由大于0.5元素组成的x的子矩阵ans =0.6283 0.8125 0.56994、练习:将rand(4,5)中前两行0.5的元素取出。四、 替换:A(2,3)=6,A(12)=61、A=zeros(3,3);A(:)=1:9A(5,5)=111%扩展为数组。扩展部分除(5,5)元素为111外,其余均为0。 A = 1 4 7 0 0 2 5 8 0 0 3 6 9 0 0 0 0 0 0 0 0 0 0 0 111 A(:,6)=222%标量对子数组赋值,并扩展为数组。 A = 1 4 7 0 0 222 2 5 8 0 0 222 3 6 9 0 0 222 0 0 0 0 0 222 0 0 0 0 111 222 五、 删除:A(2,:)=,A(:,2 4 5)=六、 合成 A=zeros(3,3);A(:)=1:9B=A,1./A, reshape(B,2,9);cat(2,A,B)(左右);cat(1,A,B)(上下);矩阵维度允许的情况下1、repmat(D,1,3)%在水平方向“铺放”三个D阵(共1*3个,1行3列)ans = 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1(1)数组的赋值扩展法A=reshape(1:9,3,3)%创建数组A A = 1 4 7 2 5 8 3 6 9 (2)多次寻访扩展法AA=A(:,1:6,1:6) %相当于指令repmat(A,1,2),读者可以试试。 AA = 1 4 7 0 0 222 1 4 7 0 0 222 2 5 8 0 0 222 2 5 8 0 0 222 3 6 9 0 0 222 3 6 9 0 0 222 0 0 0 0 0 222 0 0 0 0 0 222 0 0 0 0 111 222 0 0 0 0 111 222 (3)合成扩展法B=ones(2,6)%创建全1数组 B = 1 1 1 1 1 1 1 1 1 1 1 1 AB_r=A;B%行数扩展合成 AB_r = 1 4 7 0 0 222 2 5 8 0 0 222 3 6 9 0 0 222 0 0 0 0 0 222 0 0 0 0 111 222 1 1 1 1 1 1 1 1 1 1 1 1 AB_c=A,B(:,1:5)%列数扩展合成 AB_c = 1 4 7 0 0 222 1 1 2 5 8 0 0 222 1 1 3 6 9 0 0 222 1 1 0 0 0 0 0 222 1 1 0 0 0 0 111 222 1 1 【*例3.10-4】“对列(或行)同加一个数”三种的操作方法。clear,A=reshape(1:9,3,3) A = 1 4 7 2 5 8 3 6 9 b=1 2 3;A_b1=A-b(1 1 1,:)%使A的第1,2,3行分别减b向量1 2 3 A_b1 = 0 2 4 1 3 5 2 4 6 A_b2=A-repmat(b,3,1) A_b2 = 0 2 4 1 3 5 2 4 6 A_b3=A(:,1)-b(1),A(:,2)-b(2),A(:,3)-b(3) A_b3 = 0 2 4 1 3 52 4 6 七、 向量、矩阵函数max,min,sum,length,mean,median,prod,sort,sizedet,rank,eig,norm(x,2),inv八、 向量矩阵的运算向量:.+,.-,.*,.,.,./矩阵:A*B,A+B,A-B,AB,A/B,A,A.(复数) 有关矩阵的其他知识,help elmatl 经典的算术运算符。 运算符 MATLAB表达式加+a+b减-a-b乘*a*b除/ 或 a/b或ab幂ab a=1:1:10; b=0:10:90; a+b a.*b %注意这里a后加了个“.”,表示数组相乘, 是元素对元素的乘积 a*b %表示矩阵相乘, 要求矩阵a的列数与矩阵b的行数一致 a/b %矩阵右除 inv(a)*b ab %矩阵左除 a*inv(b) a./b %数组右除,数组中对应元素相除, a(i,j)/b(i,j) a.b %数组左除,数组中对应元素相除 b(i,j)/a(i,j) ab %矩阵乘方,涉及到特征值和特征向量的求解。 a.b %数组乘方,a和b中对应元素的乘方,即a(i,j)的b(i,j)次方。说明:在这里特别要注意一下有没有加点“.”之间的区别,这些算术运算符所运算的两个阵列是否需要长度一致。九、 矩阵函数求矩阵的长度的函数 A=10, 2, 12; 34, 2, 4; 98, 34, 6; m,n=size(A) %矩阵A的行列大小 3*3 length(A) % 返回size(A) 中的最大值十、 矩阵的几种基本变换操作1) 通过在矩阵变量后加的方法来表示转置运算 A=10,2,12;34,2,4;98,34,6; A2) 矩阵求逆 inv(A): 返回矩阵a的逆阵。 A=1 2 3; 4 5 6; 7 8 9; inv(A)3) 矩阵求伪逆pinv(A): A=1 2 3; 4 5 6; 7 8 0; 2 5 8; %3个未知量的4个方程 pinv(A)4) 矩阵翻转: 左右反转:矩阵关于垂直轴沿左右方向进行列维翻转 fliplr(A) A=1 4; 2 5; 3 6; fliplr(A) 上下反转:矩阵关于水平轴沿上下左右方向进行列维翻转 flipud(A) A=1 4; 2 5; 3 6; flipud(A)5) 旋转90度 rot90(A) 例: A=1 4; 2 5; 3 6; rot90(A)Diag(x)(连续利用两次效果),tril(x)(下三角),triu(A),rot90(x)(逆时针旋转90度),Fliplr(x)(左右翻转),flipud(x)(上下翻转)6) 矩阵的特征值 U,V=eig(A): 返回方阵A所有特征值组成的矩阵U和特征向量组成的矩阵V 例: A=6 12 19; -9 20 33; 4 9 15; U,V=eig(A)7) 取出上三角和下三角 triu(A) : 取上三角阵 tril(A) :取下三角阵 L,U=lu(A):作LU分解(Gauss消去法),L为主对角线元素都为1的上三角矩阵,U为一个下三角矩阵例: A=1 5 2; 3 4 6; 5 3 2; triu(A) tril(A) L,U=lu(A)8) 正交分解:QR分解,Q为正交矩阵,R为上三角矩阵 Q,R=qr(A)例: A=1 2; 5 7; 7 3; 9 1; Q,R=qr(A)9) 奇异值分解: U,S,V=svd(A),矩阵U和V是正交矩阵,S为A的奇异值矩阵。 例: A=9 4; 6 8; 2 7; U,S,V=svd(A)10) 求矩阵的范数 norm(A,1) 计算矩阵A的1范数 norm(A,2) 计算矩阵A的2范数 norm(A,inf) 计算矩阵A的无穷范数例: A=rand(3); norm(A,1) norm(A,2) norm(A,inf)11) 求矩阵的行列式的值 det(A)例: A=1 2 3; 4 5 6; 7 8 9 det(A)M-文件的编写l Matlab有两种工作方式:1)人机交互的命令行指令操作方式,2)进行控制流的程序设计,即编制一种可存储的以M为扩展名的文件(简称M文件),在Matlab下执行该程序l 命令式M文件: 就是将Matlab的命令按顺序编制成一个文本文件l 函数式M文件: 主要用来定义函数子程序,它由function起头,后跟的函数名必须与文件名相同,它有输入输出元(变量),可进行变量传递。 function 返回变量列表 函数名(输入变量列表)注释说明语句段,由%引导例 1)计算第n个Fibonnaci数的函数文件fibfun.mfunction f=fibfun(n)if n2 f=fibfun(n-1)+fibfun(n-2);else f=1;End2)求 n!function f=factor(n) if n=1 f=1; else f=factor
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论