matlab矩阵运算函数

matlab矩阵运算函数

ID:36849530

大小:317.50 KB

页数:6页

时间:2019-05-16

上传者:U-10915
matlab矩阵运算函数_第1页
matlab矩阵运算函数_第2页
matlab矩阵运算函数_第3页
matlab矩阵运算函数_第4页
matlab矩阵运算函数_第5页
资源描述:

《matlab矩阵运算函数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

一、Matlab矩阵运算1.变数也可用来存放向量或矩阵,并进行各种运算.如下面的列向量运算:x=[1352];y=2*x+1y=371152.变数命名的规则(1)第一个字母必须是英文字母(2)字母间不可留空格(3)最多只能有19个字母,MATLAB会忽略多余字母我们可以随意更改、增加或删除向量的元素:y(3)=2%更改第三个元素y=3725y(6)=10%加入第六个元素y=3725010 y(4)=[]%删除第四个元素y=372010MATLAB会忽略所有在百分比符号(%)之后的文字,因为百分比之后的文字为程式的注解3.常用线性代数函数B=A’矩阵转置C=A+B矩阵相加C=A*B矩阵相乘C=A^K矩阵幂C=A.*B矩阵点乘,即两维数相同的矩阵各对应元素相称expm(A)指数矩阵inv(A)逆矩阵det(A)矩阵行列式的值rank(A)计算矩阵的秩eig(A)矩阵的特征值[X,D]=eig(A)矩阵的特征向量X和以特征值为元素的对角阵DP=poly(A)矩阵的特征多项式R=roots(p)特征多项式方程的根Conv(p1.p2)两多项式相乘上面所列的都是有关矩阵的操作函数。如eig(A)可求出A的特征根及其特征向 量,具体执行方法为:输入A矩阵>>A=[01;-6-5]A=01-6-5E=eig(A)%求出方阵A的特征根EE=-2-3[V,D]=eig(A)%求出方阵A的特征向量V及其A的对角型DV=0.4472-0.3162-0.89440.9487D= -20 0-31.考虑一个“数学问题”,该问题用半数学语言描述就是:如何生成一个3x3矩阵,并将自然数1,2,...,9分别置成这9个矩阵元素,才能使得每一行、每一列、且主、反对角线上元素相加都等于一个相同的数。这样的矩阵称为“魔方矩阵”。用MATLAB的magic()函数,我们可以由下面的命令立即生成这样的矩阵:>>A=magic(3)A=816357 492还可以由B=magic(10)一次生成10x10的魔方矩阵。如果想求出矩阵的行列式和特征值,可以分别由det(B)与eig(B)立即得出结果二、特殊矩阵zeros函数是形成元素皆为0的矩阵;ones函数是形成元素皆为1的矩阵; eye则是产生一个单位矩阵,之所以称为eye是取其发音与原来单位矩阵符号I相同,而又避免与定义复数中的虚部所用的符号i雷同,所以改以eye替代。上述三个函数的使用语法都相似,如zeros(m)可以产生一个m×m的正方矩阵,而zeros(m,n)产生的是m×n的矩阵。也可以使用这三个函数将一m×n矩阵原来元素全部取代成0,1或是单位矩阵的值,不过要加上size指令来指出其矩阵大小是m,n,所以语法为zeros(size(A)),其中A是原来矩阵。>>A=zero(2)%0的矩阵A=0000>>B=zeros(2,3)B=000000>>C=[12;34;56];>>size(C)%使用size指令得到C矩阵的大小ans=32>>D=zeros(size(C))%加上size指令将矩阵C原来的元素全部以0取代>>A=ones(2),B=ones(2,3)%1的矩阵A=1111B=111111三、Matlab矩阵运算函数 1.先介绍几个与矩阵转角有关的函数:rot90,fliplr,flipud,它们的用法及说 明.请参考以下的例子。>>A=[210;-25-1;346];>>B=rot90(A)%将A矩阵逆时针转90度B=0-161542-23>>A=[12;48;-20];>>B=fliplr(A);%将A矩阵从左向右翻>>C=flipud(A);%将A矩阵从上向下翻>>B,CB=21840-2C=-2048122.另外函数reshape则是用来调整矩阵改形,即是在矩阵的元素总数不变下,改变其列及行的大小。见以下范例。>>A=[256-1;3-2100];>>B=reshape(A,4,2);%将A矩阵改成4x2的矩阵>>C=reshape(A,1,8);%将A矩阵改成8x1的矩阵>>B,CB=263105-1-20C=25613-21003.我们如果要将矩阵内的特定元素读取出来,或是将特定元素以其它值取代,以下的函数diag,triu,tril提供了这方面的功能。diag是只保留原矩阵的 主对角线(maindiagonal)的元素,其余的元素以零取代。triu,tril则是分别产生上三角形及下三角形矩阵,其余的元素也以零取代。以下的例子详细的说明这三个函数的用法:>>V=[123];>>A=diag(V)A= 100 020003>>A=[1:2:7;3:3:12;4:-1:1;1:4]A=13573691243211234>>B=triu(A)B=13570691200210004>>A=[1:2:7;3:3:12;4:-1:1;1:4]A=13573691243211234>>C=triu(A,-1)C=13573691203210034>>D=triu(A,3) D=00070000000000001.我们在前面已说明过MATLAB的运算是以阵列(array)及矩阵(matrix)方式在做运算,而这二者在MATLAB的基本运算性质不同,阵列强调元素对元素的运算,而矩阵则采用线性代数的运算方式。我们就来说明矩阵运算的特点。以下将阵列及矩阵的运算符号及其意义列出利用这些运算符号即可进行以下的矩阵运算。>>A=[251;738;4521;16130];>>A'%A的转置矩阵A=274165351318210 >>A=[4-13];B=[-252];>>dot_prod=sum(A.*B)%二个阵列做内积dot_prod=-7>>c=dot(A,B)%以dot函数也可做内积运算c=-7>>A=[4;-1;3];>>dot_prod=sum(A'.*B);%如果A是行阵列则先做转置,再做内积>>F=[25-1];G=[01-3];>>out_prod=F'*G;%二矩阵做外积>>A=[2,5,1;0,3,-1];>>B=[1,0,2;-1,4,-2;5,2,1];>>C=A*B%矩阵相乘,注意二个矩阵的大小须相容C=222-5-810-71.函数polyvalm是以矩阵方式做多项式函数计算,有别于polyval是以阵列方式计算函数值。它的语法为polyvalm(a,X),其中X为一矩阵而a则是一多项式。以下的例子可说明其用法。>>X=[111;222;333];>>a=[111];%注意a=X*X+X+I>>f=polyvalm(a,X)f=8771415142121222.逆矩阵、矩阵秩与行列式MATLAB的逆矩阵函数和秩函数语法分别为inv(A),rank(A),:例如:>>A=[21;43];>>rank(A)2%表示A秩数为2且等于矩阵的列数>>inv(A)%逆矩阵ans=0.4472-0.5000-2.00001.0000>>B=[21;32;45];%B为奇异矩阵>>rank(B) ans=2%表示B秩数为2,但是其列数为3MATLAB提供计算行列式的函数,其语法为det(A),例如:>>A=[130;-152;121];>>det(A)%矩阵之行列式值ans=10

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭