收藏 分销(赏)

Matlab矩阵操作函数汇总.docx

上传人:pc****0 文档编号:6638674 上传时间:2024-12-18 格式:DOCX 页数:28 大小:38.49KB 下载积分:10 金币
下载 相关 举报
Matlab矩阵操作函数汇总.docx_第1页
第1页 / 共28页
Matlab矩阵操作函数汇总.docx_第2页
第2页 / 共28页


点击查看更多>>
资源描述
矩阵创建相关函数 cat函数 语法说明:A = cat(n,A1,A2,… ,Am) 功能介绍:创建多维数组 实例: >> A1 = [1 2 3; 4 5 6; 7 8 9];A2 = A1'; A3 = A1 - A2; >> A4 = cat(3, A1, A2, A3) A4(:,:,1) = 1 2 3 4 5 6 7 8 9 A4(:,:,2) = 1 4 7 2 5 8 3 6 9 A4(:,:,3) = 0 -2 -4 2 0 -2 4 2 0 n = 3是构造三维数组,n = 1和2分别构造[A1;A2]以及[A1,A2],都是二维数组。 eye函数 功能介绍:单位矩阵生成 语法说明: ² Y = eye(n),生成n*n单位矩阵 ² Y = eye(m, n),生成m*n单位矩阵 ² Y = eye(sizes(A)),生成与矩阵A相同大小的单位矩阵 实例: >> n = 3; m = 5; >> Y1 = eye(n) Y1 = 1 0 0 0 1 0 0 0 1 >> Y2 = eye(m, n) Y2 = 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 ones函数 功能介绍:全1矩阵生成 语法说明: ² Y=ones(n):生成n*n全1矩阵 ² Y =one(m,n):生成m*n全1矩阵 ² Y=ones([m,n]):生成m*n全1矩阵 ² Y=ones(d1,d2,d3):生成d1*d2*d3全1矩阵 ² Y=ones([d1,d2,d3]):生成d1*d2*d3全1矩阵 ² Y=ones(size(A)):生成与矩阵A相同大小的全1矩阵 strcmp函数 功能介绍:字符串比较函数 语法说明: ² Y=strcmp(str1,str2):比较两个字符串是否相等,返回值是0或者‘==’也是比较前后两个字符串,且要求前后两个字符串长度相同,但是是每个位置都进行比较。返回的一般是一个数组 实例: >> D = strcmp('hello', 'Hello') D = 0 >> D = strcmp('Hello','Hello') D = 1 >> D = ('hello' == 'world') D = 0 0 0 1 0 >> D = strcmp('he', 'hell') D = 0 findstr函数 功能介绍:字符串查找 语法说明: ² Y=findstr(String, str):在String中查找str所在位置,返回一数字或数组 实例: >> String = 'Peter Piper picked a peck of pickled pepers'; >> Y = findstr(String, ' ') Y = 6 12 19 21 26 29 37 >> Y = findstr(String, 'p') Y = 9 13 22 30 38 40 >> Y = findstr(String, 'cow') Y = [] >> Y = findstr(String, 'pick') Y = 13 30 strrep函数 功能介绍:字符串替换函数 语法说明: ² Y=strrep(String,str1,str2):将String中str1替换为str2,str1和str2长度可以不相同 实例: >> String = 'Peter Piper picked a peck of pickled pepers'; >> Y = strrep(String, 'Peter', 'Sabrina') Y = Sabrina Piper picked a peck of pickled pepers linspace函数 功能介绍:线性等分向量生成 语法说明: ² Y=linspace(a,b):在(a,b)上生成100个线性等分点 ² Y=linspace(a,b,n):在(a,b)上生成n个线性等分点 实例: >> Y = linspace(1,100) >> Y=linspace(1,100,5) Y = 1.0000 25.7500 50.5000 75.2500 100.0000 logspace函数 功能介绍:生成对数等分向量 语法说明: ² Y=logspace(a,b):在之间产生50个对数等分向量 ² Y=logspace(a,b,n):在之间产生n个对数等分向量 实例: >> Y = logspace(2, 4) >> Y = logspace(2, 4, 5) dot函数 功能介绍:向量点积 语法说明: ² Y=dot(A,B):同维向量A,B的点积 blkdiag函数 功能介绍:特殊矩阵 语法说明: ² Y = blkdiag(a,b,c):产生以a,b,c为对角线元素的矩阵 实例: >> Y = blkdiag(1, 2, 3, 4) Y = 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0 4 compan函数 功能介绍: 生成友矩阵 语法说明: ² A=company(u):u为多项式系统向量,A为友矩阵,A的特征值就是是多项式的特征根 实例:求多项式(x-1)(x+2)(x-3)=x^3 -8x+13的友矩阵和根 >> u = [1 0 -8 13] u = 1 0 -8 13 >> A = compan(u) A = 0 8 -13 1 0 0 0 1 0 hankel函数 功能介绍:生成Hankel方阵 语法说明: ² H =hankel(c):第一列元素是c,反三角一下元素为0 ² H=hankel(c,r):第一列元素是c,最后一行元素是r,交叉位置去c对应位置 实例: >> c=1:1:4; >> r=5:1:10; >> h = hankel(c,r) h = 1 2 3 4 6 7 2 3 4 6 7 8 3 4 6 7 8 9 4 6 7 8 9 10 hilb函数 功能介绍:生成Hilbert矩阵 语法说明: ² H = hilb(n):n阶希尔伯特矩阵 实例: >> H = hilb(3) H = 1.0000 0.5000 0.3333 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000 invhilb函数 功能介绍:逆Hilbert矩阵 语法说明: ² H = invhilb(n):产生n阶逆Hilbert整数矩阵 实例: >> H = invhilb(3) H = 9 -36 30 -36 192 -180 30 -180 180 pascal函数 功能介绍:生成Pascal矩阵 语法说明: ² A=pascal(n):产生n阶Pascal矩阵,它是对称、正定矩阵,它的元素由Pascal三角组成,它的逆矩阵的所有元素都是整数 ² A=pascal(n,1):返回由下三角的Cholesky系数组成的Pascal矩阵 ² A=pascal(n,2):返回Pascal(n,1)的转置和交换的形式 实例: >> A = pascal(3) A = 1 1 1 1 2 3 1 3 6 >> A = pascal(3, 1) A = 1 0 0 1 -1 0 1 -2 1 >> A = pascal(3, 2) A = 1 1 1 -2 -1 0 1 0 0 toeplitz函数 功能介绍:生成拓普利兹矩阵(除第一行和第一列外,其他元素都和左上角的元素相同) 语法说明: ² T=toeplitz(c,r):生成一个非对称的拓普利兹矩阵,将c作为第一列,将r作为第一行,其余元素与左上角相邻元素相等 ² T=toeplitz(c):用向量c生成一个对称的拓普利兹矩阵 实例: >> c = [1 2 3 4 5]; >> r = [1.3 2.4 3.5 4.6 5.6]; >> T = toeplitz(c, r) T = 1.0000 2.4000 3.5000 4.6000 5.6000 2.0000 1.0000 2.4000 3.5000 4.6000 3.0000 2.0000 1.0000 2.4000 3.5000 4.0000 3.0000 2.0000 1.0000 2.4000 5.0000 4.0000 3.0000 2.0000 1.0000 rand函数 功能介绍: 生成0~1间均匀分布的随机矩阵 语法说明: ² R=rand(n):产生维数为n*n的0~1间均匀分布的随机矩阵 ² R=rand(m,n):产生维数为m*n的0~1间均匀分布的随机矩阵 ² R=rand(m,n,p): ² R=rand(size(A)):产生维数和A相同的~~~ 实例: >> B = rand(3) B = 0.6991 0.5472 0.2575 0.8909 0.1386 0.8407 0.9593 0.1493 0.2543 >> C = rand(3, 4) C = 0.8143 0.3500 0.6160 0.8308 0.2435 0.1966 0.4733 0.5853 0.9293 0.2511 0.3517 0.5497 >> D = rand(size(C)) D = 0.9172 0.7537 0.0759 0.7792 0.2858 0.3804 0.0540 0.9340 0.7572 0.5678 0.5308 0.1299 randn函数 功能介绍:标准正态分布随机函数 语法说明:用法类似rand函数 实例:类似rand函数 vander函数 功能介绍:生成范德蒙矩阵 语法说明: ² A=vander(v):其中v是一个向量,矩阵的列是v的幂 实例: >> A = vander([5, 2, 3, 4]) A = 125 25 5 1 8 4 2 1 27 9 3 1 64 16 4 1 prod函数 功能介绍:矩阵元素求积 语法说明: ² B=prod(A):对矩阵A的元素求积,返回矩阵A各列元素的积组成的向量 ² B=prod(A,dim):返回给定维数dim上元素的积,dim为1时,计算矩阵A各列元素的积,当dim为2时,计算A各行元素的积 实例: A = 8 1 6 3 5 7 4 9 2 >> B = prod(A) B = 96 45 84 >> C = prod(A, 2) C = 48 105 72 cumprod函数 功能介绍:类似sum 语法说明: ² B=cumprod(A),B=cumprod(A,2) 实例: A = 8 1 6 3 5 7 4 9 2 >> E = cumprod(A) E = 8 1 6 24 5 42 96 45 84 >> D = cumprod(A, 2) D = 8 8 48 3 15 105 4 36 72 norm函数 功能介绍:矩阵范数(当矩阵维数较大时,用normest函数) 语法说明: ² N=norm(x,p):对任意大于1的p值,返回向量x的p阶范数 ² N=norm(x):返回向量x的2阶范数,相当于N=norm(x,2) ² N=norm(x,inf):返回向量x的无穷阶范数,相当于max(abs(x)) ² N=norm(x,-inf):返回向量x的负无穷阶范数,相当于min(abs(x)) ² N=norm(A):计算矩阵的2阶范数,也就是最大奇异值 ² N=norm(A,p):当p=1时,求矩阵A的1阶范数,相当于max(sum(abs(A)));当p=2时,计算矩阵A的2阶范数,相当于norm(A);当p=inf时,计算矩阵A的无穷阶范数,相当于计算max(sum(abs(A’)));当p=pro时,计算矩阵A的F范数,相当于sqrt(sum(diag(A’*A))) 实例: >> A = [1 2 3; 3 4 5; 7 8 9]; >> B = norm(A, 1) B = 17 >> B = norm(A) B = 16.0216 >> B = norm(A,inf) B = 24 >> B = norm(A,'fro') B = 16.0624 rank函数 功能介绍:矩阵的秩 语法说明: ² rank(A):用默认允许误差计算矩阵的秩 ² rank(A,tol):给定误差计算矩阵的秩,tol=max(size(A))·eps(norm(A)) 实例: det函数 功能介绍:矩阵的行列式 语法说明:det(A) 实例: trace函数 功能介绍:矩阵的迹 语法说明:trace(A) 实例: 矩阵分解相关函数 chol函数 功能介绍:对称正定阵的Cholesky分解(用来求解线性方程组) 语法说明: ² R=chol(X):其中X为对称正定矩阵,R是上三角矩阵,使得X=R’·R。如果X是非正定的,则返回错误信息。 ² [R,p]=chol(X):返回两个参数,并且不会返回错误信息。当X是正定矩阵时,返回上三角R满足X=R’·R,且p=0;当X是非正定阵时返回值p是正整数,R是上三角矩阵,其阶数是p-1,且满足X(1:p-1,1:p-1)=R’·R 实例: >> A = pascal(4) A = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 >> eig(A)//通过A的特征值,来验证A矩阵是正定的 ans = 0.0380 0.4538 2.2034 26.3047 >> R = chol(A) R = 1 1 1 1 0 1 2 3 0 0 1 3 0 0 0 1 lu函数 功能介绍:矩阵的LU分解 语法说明: ² [L,U]=lu(X):X是一个方阵,L为下三角矩阵的置换矩阵,U为上三角,满足X=LU ² [L,U,P]=lu(X):X是一个方阵,L是下三角,U为上三角,P是置换矩阵,满足条件PX=LU ² Y=lu(X):X为一个方阵,把上三角矩阵和下三角矩阵合并在矩阵Y中给出,矩阵Y的对角元素为上三角矩阵的对角元素,也即Y=L+U-I 【注】考虑线性方程组Ax=b,对矩阵A可以做LU分解,使得A=LU,这样方程组改写成LUx=b,于是x=U\(L\b)。也可以计算A的行列式:det(A)=det(L)*det(U)。inv(A)=inv(U)*inv(L)。 实例: >> A = [2 4 5; 8 9 6; 1 3 5]; >> [L1, U1] = lu(A) L1 = 0.2500 0.9333 1.0000 1.0000 0 0 0.1250 1.0000 0 U1 = 8.0000 9.0000 6.0000 0 1.8750 4.2500 0 0 -0.4667 >> [L2, U2, P] = lu(A) L2 = 1.0000 0 0 0.1250 1.0000 0 0.2500 0.9333 1.0000 U2 = 8.0000 9.0000 6.0000 0 1.8750 4.2500 0 0 -0.4667 P = 0 1 0 0 0 1 1 0 0 qr函数 功能介绍:矩形矩阵的正交分解(QR分解) 语法说明: ² [Q,R]=qr(A):其中R为与矩阵A具有相同大小的上三角矩阵,Q为正交矩阵。它们满足A=QR,该调用方式适用于满矩阵和稀疏矩阵。 ² [Q,R]=qr(A,0):为“经济”方式的QR分解。设矩阵A是一个m*n的矩阵,若m>n,则只计算矩阵Q的钱n列元素,R为n*n的矩阵;若m<=n,则与[Q,R]=qr(A)效果一样,该调用方式适用于满矩阵和稀疏矩阵。 ² [Q,R,E]=qr(A):R是上三角矩阵,Q是正交矩阵,E是置换矩阵。他们满足AE=QR,程序选择一个合适的矩阵E似的abs(diag(R))是降序排列的。该调用方式适用于满矩阵。 ² [Q,R,E]=qr(A,0):“经济”方式的QR分解,其中E是一个置换矢量。他们满足A(:,E)=QR。该调用方式适用于满矩阵。 ² R=qr(A):返回上三角矩阵R,这里R=chol(A’A)。该调用方式适用于稀疏矩阵。 ² R=qr(A,0):以“经济”方式返回上三角矩阵R。 ² [C,R]=qr(A,B):其中矩阵B必须与矩阵A具有相通的行数,矩阵R是上三角矩阵,C=Q’B。 实例: >> A = [2 4 5; 8 9 6; 1 3 5]; >> [Q1, R1] = qr(A) Q1 = 0.2408 0.6424 -0.7276 0.9631 -0.2511 0.0970 0.1204 0.7241 0.6791 R1 = 8.3066 9.9920 7.5843 0 2.4818 5.3257 0 0 0.3395 schur函数 功能介绍:方阵的舒尔分解 语法说明: 【说明】A=USU’。其中A是方阵,U是一个酉矩阵,S是一个块对角化矩阵,对角线上的1*1和2*2块组成。特征值可以由矩阵S的对角块给出,而矩阵U给出比特征向量更多的数值特征。 ² [U,S]=schur(A):返回酉矩阵U和块对角化矩阵S。 ² S=schur(A):仅返回块对角矩阵S。 ² schur(A,’real’):返回的实特征值放在对对角线上,而把复特征值放在对角上的2*2块中 ² schur(A,’complex’):返回矩阵的S是上三角矩阵,并且如果矩阵A是复特征值,则矩阵S是复矩阵。 实例: >> A = pascal(5); >> [U, S] = schur(A) U = 0.1680 -0.5706 -0.7660 0.2429 0.0175 -0.5517 0.5587 -0.3830 0.4808 0.0749 0.7025 0.2529 0.1642 0.6110 0.2055 -0.4071 -0.5179 0.4377 0.4130 0.4515 0.0900 0.1734 -0.2189 -0.4074 0.8649 S = 0.0108 0 0 0 0 0 0.1812 0 0 0 0 0 1.0000 0 0 0 0 0 5.5175 0 0 0 0 0 92.2904 eig函数 功能介绍:矩阵特征值与特征向量 语法说明: ² eig(A):求包含矩阵A的特征值的向量 ² [X,D]=eig(A):产生一个矩阵A的特征值与特征向量,D对角线上元素就是A的特征值,X的列是相应的特征向量,即满足AX=XD ² eig(A,’nobalance’):不经过处理求的矩阵A的特征值和特征向量,也就是不进行平衡相似变换 实例: >> A = [0.8 0.2; 0.2 0.8]; >> [X, D] = eig(A) X = -0.7071 0.7071 0.7071 0.7071 D = 0.6000 0 0 1.0000 稀疏矩阵相关函数 sparse函数 功能介绍:稀疏矩阵的创建 语法说明: ² S=sparse(A):将矩阵A转化为稀疏矩阵形式,即由A的非零元素和下标构成稀疏矩阵S。若A本身就是稀疏矩阵,则返回A ² S=sparse(m,n):生成m*n的所有元素都是零的稀疏矩阵 ² S=sparse(i,j,s):生成一个由长度相同的向量i、j和s定义的稀疏矩阵S。其中i,j是整数向量,第一稀疏矩阵的元素位置(i,j),s是一个实数或者与i,j长度相同的向量,表示在(i,j)位置上的元素。 ² S=sparse(i,j,s,m,n):生成一个m*n的稀疏矩阵,(i,j)对应位置元素为s。i,j,s长度必须相同 【注】 nnz(S):查看非零元素个数 nonzeros(S):非零元素的值 nzmax(S):查看稀疏矩阵的存储空间 实例: >> S = sparse(1:10, 1:10, 8) S = (1,1) 8 (2,2) 8 (3,3) 8 (4,4) 8 (5,5) 8 (6,6) 8 (7,7) 8 (8,8) 8 (9,9) 8 (10,10) 8 >> S = sparse([1, 2, 3, 4, 5], [2, 1, 4, 6, 2], [10, 3, -2, -5, 1], 10, 12) S = (2,1) 3 (1,2) 10 (5,2) 1 (3,4) -2 (4,6) -5 full函数 功能介绍:将稀疏矩阵转化为满矩阵 语法说明: ² A=full(S) 实例: >> S = sparse([1, 2, 3, 4, 5], [2, 1, 4, 6, 2], [10, 3, -2, -5, 1], 5, 6) S = (2,1) 3 (1,2) 10 (5,2) 1 (3,4) -2 (4,6) -5 >> A = full(S) A = 0 10 0 0 0 0 3 0 0 0 0 0 0 0 0 -2 0 0 0 0 0 0 0 -5 0 1 0 0 0 0 spconvert函数 功能介绍:外部数据转化为稀疏矩阵 语法说明: ² S=spconvert(D):D共有3列,第一列为行下标,第二列为列下标,最后一列为元素值 实例: >> A = [1 2 3; 2 5 4; 3 4 6; 3 6 7] A = 1 2 3 2 5 4 3 4 6 3 6 7 >> S = spconvert(A) S = (1,2) 3 (3,4) 6 (2,5) 4 (3,6) 7 find函数 功能介绍:稀疏矩阵非零元素的索引 语法说明: ² [i,j,k]=find(S):检索S中非零元素的行标i和列标j以及对应元素值v 实例: >> A = [1 2 3; 2 5 4; 3 4 6; 3 6 7]; >> S = spconvert(A) S = (1,2) 3 (3,4) 6 (2,5) 4 (3,6) 7 >> [i, j, k] = find(S) i = 1 3 2 3 j = 2 4 5 6 k = 3 6 4 7 speye函数 功能介绍:单位稀疏矩阵 语法说明: ² S=speye(m,n):生成m*n的单位稀疏矩阵 ² S=speye(n):生成n*n的单位稀疏矩阵 实例: spones函数 功能介绍:创建非零元素是1的稀疏矩阵 语法说明: ² S=spones(X):创建X结构的非零元素是1的稀疏矩阵 实例: spdiags函数 功能介绍:创建对角或带状稀疏矩阵 语法说明: ² [B,d]=spdiags(A):从矩阵A中取出所有非零对角元素,并保存到矩阵B中,向量d表示非零元素对角线位置 ² B=spdiags(A,d):从A中取出由d指定的对角线元素,并保存在B中。 【注】上述d,主对角线取0,主对角线一下的取负值,主对角线以上的取正值
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服