搜档网
当前位置:搜档网 › Matlab矩阵操作函数汇总

Matlab矩阵操作函数汇总

Matlab矩阵操作函数汇总
Matlab矩阵操作函数汇总

矩阵创建相关函数

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 =

>> D = strcmp('Hello','Hello')

D =

1

>> D = ('hello' == 'world')

D =

0 0 0 1 0

>> D = strcmp('he', 'hell')

D =

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 =

2-matlab矩阵的代数运算 (1)

乘法运算乘法运算符为”*”,运算规则和现行代数中矩阵乘法运算相同,即放在前面的矩阵的行元素,分别与放在后面的矩阵的各列元素对应相乘并相加。 1、两个矩阵相乘:必须满足前一矩阵的列数等于后一矩阵的行数。 2、矩阵的数乘:返回数与矩阵中每一个元素相乘后的矩阵 3、向量的点乘(内积):维数相同的两个向量的点乘;A.*B表示A与B对应的元素相乘,返回的是一个向量 4、向量点积: (1)C=dot(A,B) %若A、B为向量,A与B长度相同;若为矩阵,则A与B有相同维数 (2)C=dot(A,B,dim) %在dim维数中给出A与B的点积 5、向量叉乘:在数学上,两向量的叉乘是一个过两向量交点且垂直于两向量所在平面的向量。 (1)C=cross(A,B) %若A、B为向量,则返回A与B的叉乘,即C=AXB;若为矩阵,则返回一个3Xn矩阵,其中列是A与B对应列的叉积,A、B都是3Xn矩阵 (2)C=cross(A,B,dim) %在dim维数中给出向量A与B的叉积注:A与B必须具有相同维数,size(A,dim)和size(B,dim)必须是3 6、矩阵卷积和多项式乘法:w=conv(u,v) (反褶积deconv(u,v))长度为m的向量序列u和长度为n的向量序列v的卷积定义为 ∑ = + = k 1 j j) -1 u(j)v(k )k( w,其中w向量序列长度为(m+n-1) 多项式的乘法实际上是多项式系数向量间的卷积运算,举例如下:展开多项式(s2+2s+2)(s+4)(s+1) >>w=conv([1,2,2],conv([1,4],[1,1])) w = 1 7 16 18 8 >>p=poly2str(w,’s’) %将w表示成多项式 p=s^4 +7 s^3 +16 s^2 +18 s + 8 7、张量积 C=kron(A,B) %A为mxn矩阵,B为pxq矩阵,则C为mpxnq矩阵A与B的张量积定义为: 加、减运算加、减运算符为”+”、”--”。运算规则为对应元素相加、减 pow2函数命令:X=pow2(F,E),表示F*2E;命令:X=pow2(E),表示2E 矩阵的代数 运算

matlab中的矩阵的基本运算命令

1.1 矩阵的表示 1.2 矩阵运算 1.2.14 特殊运算 1.矩阵对角线元素的抽取 函数diag 格式X = diag(v,k) %以向量v的元素作为矩阵X的第k条对角线元素,当k=0时,v为X的主对角线;当k>0时,v为上方第k条对角线;当k<0时,v为下方第k条对角线。 X = diag(v) %以v为主对角线元素,其余元素为0构成X。 v = diag(X,k) %抽取X的第k条对角线元素构成向量v。k=0:抽取主对角线元素;k>0:抽取上方第k条对角线元素;k<0抽取下方第k条对角线元素。 v = diag(X) %抽取主对角线元素构成向量v。 2.上三角阵和下三角阵的抽取 函数tril %取下三角部分 格式L = tril(X) %抽取X的主对角线的下三角部分构成矩阵L L = tril(X,k) %抽取X的第k条对角线的下三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。函数triu %取上三角部分 格式U = triu(X) %抽取X的主对角线的上三角部分构成矩阵U U = triu(X,k) %抽取X的第k条对角线的上三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。3.矩阵的变维 矩阵的变维有两种方法,即用“:”和函数“reshape”,前者主要针对2个已知维数矩阵之间的变维操作;而后者是对于一个矩阵的操作。 (1)“:”变维 (2)Reshape函数变维 格式 B = reshape(A,m,n) %返回以矩阵A的元素构成的m×n矩阵B B = reshape(A,m,n,p,…) %将矩阵A变维为m×n×p×… B = reshape(A,[m n p…]) %同上 B = reshape(A,siz) %由siz决定变维的大小,元素个数与A中元素个数 相同。 (5)复制和平铺矩阵 函数repmat 格式 B = repmat(A,m,n) %将矩阵A复制m×n块,即B由m×n块A平铺而成。 B = repmat(A,[m n]) %与上面一致 B = repmat(A,[m n p…]) %B由m×n×p×…个A块平铺而成 repmat(A,m,n) %当A是一个数a时,该命令产生一个全由a组成的m×n矩阵。 1.3 矩阵分解 1.3.1 Cholesky分解 函数chol 格式R = chol(X) %如果X为n阶对称正定矩阵,则存在一个实的非奇异上三角阵R,满足R'*R = X;若X非正定,则产生错误信息。 [R,p] = chol(X) %不产生任何错误信息,若X为正定阵,则p=0,R与上相同;若X非正定,则p为正整数,R是有序的上三角阵。 1.3.2 LU分解

Matlab常用函数数组及矩阵的基本运算

实验一 Matlab 常用函数、数组及矩阵的基本运算 一、 实验目的 1. 了解Matlab7.0软件工作界面结构和基本操作; 2. 掌握矩阵的表示方法及Matlab 常用函数; 3. 掌握数组及矩阵的基本运算. 二、 实验内容 1. 了解命令窗口(command widow)和变量空间(workspace)的作用,掌握清 除命令窗口(clc )和变量空间(clear)的方法.掌握查询函数(help)的方法. 2. 掌握保存和加载变量的方法. 加载变量:load 变量名. 3. 掌握掌握矩阵的表示方法: 给a,b,c 赋如下数据: ]6,46,23,4,2,6,3,8,0,1[,356838241248 7,278744125431-=??????????--=??????????=c b a 4. 求a+b,a*b,a.*b,a/b,a./b,a^2,a.^2的结果. 5. 将str1=electronic; str2 = information; str3 = engineering; 三个字符串连接 在一起成str = electronic information engineering. 6. 求矩阵a 的逆矩阵a -1,行列式计算。 (inv(a),det(a)) 三、 实验要求 1.上机操作,熟练掌握清除命令窗口和变量空间的方法、查询变量的方法、加载变量的方法。 2.第2道题请写出步骤。 3.对实验内容中第3-6项,写出指令,上机运行. 记录运行结果(数据)。 4.写出实验报告。 四、 实验结果 2. 用save 函数,可以将工作空间的变量保存成txt 文件或mat 文件等. 比如: save peng.mat p j 就是将工作空间中的p 和j 变量保存在peng.mat 中. 用load 函数,可以将数据读入到matlab 的工作空间中. 比如:load peng.mat 就是将peng.mat 中的所有变量读入matlab 工作空间中。

MATLAB矩阵及其运算函数表

MATLAB 矩阵及其运算函数表 函数名函数功能 abs( ) 绝对值、负数的模、字符串的ASCII码值都可用来求字符串矩阵所 对应的ASCII码数值矩阵double( ) char( ) 可以把ASCII码数值矩阵转换为字符串矩阵 fix( ) 向零方向取整 floor( ) 不大于自变量的最大整数 ceil( ) 不小于自变量的最小整数 round( ) 四舍五入到最邻近的整数 rem(x,y) 求余函数 mod(x,y) % exp( ) 指数函数 [ ] 空操作符 format 格式符设置或改变数据输出格式 (其中格式符决定数据的输出格式) e1:e2:e3 冒号表达式可以产生一个行向量 (其中e1为初始值,e2为步长,e3为终止值) linspace(a,b,n) 产生一个行向量 (其中a和b是生成向量的第一个和最后一个元素,n是元素总数) [注:linspace(a,b,n)与a:(b-a)/(n-1):b等价] A(:,j) 表示取A矩阵的第j列全部元素 A(i,:) 表示A矩阵第i行的全部元素 A(i,j) 表示取A矩阵第i行、第j列的元素 A(i:i+m,:) 表示取A矩阵第i~i+m行的全部元素 A(:,k:k+m) 表示取A矩阵第k~k+m列的全部元素 A(i:i+m,k:k+m) 表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素 zeros 产生全0矩阵(零矩阵) ones 产生全1矩阵(幺矩阵) eye 产生单位矩阵 rand 产生0~1间均匀分布的随机矩阵 randn 产生均值为0,方差为1的标准正态分布随机矩阵 zeros(size(A)) 建立一个与矩阵A同样大小的零矩阵 reshape(A,m,n) 在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵magic(n) 生成一个n阶魔方矩阵(其每行、每列及两条对角线上的元素和都相等) vander(V) 生成以向量V为基础向量的范得蒙矩阵(最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积) hilb(n) 生成希尔伯特矩阵 invhilb(n) 求n阶的希尔伯特矩阵的逆矩阵 (用一般方法求逆会因原始数据的微小扰动而产生不可靠的计算结果) toeplitz(x,y) 生成一个以x为第1列,y为第1行的托普利兹矩阵(除第1行第1列外,

MATLAB中矩阵常用的操作函数

MATLAB中矩阵常用的操作函数 1. zeos : 生成零矩阵 2. ones : 生成1矩阵 3. eye : 生成单位矩阵 4. rand : 返回[0,1]之间的平均分布的随机数(矩阵) 5. randn : 返回标准正态分布的随机数(矩阵) 6. mean : 返回列的均值 7. std : 返回列的方差 8. magic : 返回魔方矩阵,即行、列,对角线元素之和都相等的矩阵 9. hilb : 返回Hilbert矩阵,即H(i,j)=1/(i+j-1) 的矩阵 10. toeplitz : 返回toeplitz矩阵 11. 常用运算: 和:A+B 积:A*B 转置:A',注意:如果A是复矩阵,则A'是共轭转置 行列式:det(A) 逆:inv(A) 内积:dot(a, b) 秩:rank(A) 迹:trace(A) 12. 线性方程组:Ax=b,可以用左除运算:x=A\b;也可以用逆运算:x=inv(A)*b,但效率不如左除运算。 13. Jordan 标准型:jordan(A),返回A的Jordan标准型。或者用两个参数接收结果:[V, J] = jordan(A),那么J是A的Jordan标准型,V是用到的相似变换矩阵,即A=V*J*inv(V)。 14. SVD分解,即奇异值分解:[U, S, V] = svd(A),A=USV'。 15. 特征值:eig(A)返回A的所有特征值。如果用两个参数接收结果:[E, F] = eig(A),那么E 的列是A的特征向量,F是A的特征值。 16. 范数: 1范数:norm(A, 1) 2范数:norm(A, 2) 无穷范数:norm(A, inf) Frobenius范数(也叫Euclid范数,简称F-范数或者E-范数),即A全部元素平方和的平方根:norm(A, 'fro') 17. 矩阵函数:通用方法是funm(A, @fun),即计算矩阵A的fun函数。

常见的matlab的运算函数

三角函数: ()里如果是角度必须是弧度,如果是矩阵的话则为对每个元素执行。cos(),tan()也是一样。 以2为底对数函数:log2(4)=2 以10为底对数函数:log10() 自然对数:log() 绝对值函数:abs(-2)=2 平方根函数:sqrt(2)=1.41 符号函数:sign(正数)=1 sign(负数)=-1 sign(0)=0 天花板函数ceil()向大的方向 地板函数floor()向小的方向 fix()向0的方向 圆整函数round()对数进行4舍5入,负数的话也对对应的正数4舍5入

取模函数 mod(5,3)=2 rem(5,3)=2 区别rem(-5,3)=-2 mod(-5,3)=1 多项式相乘函数:

conv()deconv()是相除 取最大和最小函数: max() min() 图中b为行向量或者是列向量 如果()里为矩阵,则输出每列的最大值(以行向量的形式)如果要求矩阵的最大值max(max(A)) mean(A)输出对应每列的平均值(以行向量的形式)

向量的求和和求积:

整个矩阵的总和sum(sum(A)),求积函数prod同理

多项式乘多项式展开的表达式: [1,1]表示x+1,1 2 1的意思是x^2+2*x+1 复数的函数 real(1+2i)=1(取实部) imag(1+2i)=2(取虚部) abs(1+2i)=2.23 angle(1+2i)=1.107 (在坐标系中对应的角度,即arctan 2=1.107 )取共轭复数: (1+2i)’=1-2i conj(1+2i)=1-2i dot(a,b)向量的内积 det(a)求行列式的值

MATLAB矩阵运算函数

MATLAB矩阵运算函数表 函数名函数功能 abs()绝对值、负数的模、字符串的ASCII码值都可用来求字符串矩阵所 对应的ASCII码数值矩阵double() char()可以把ASCII码数值矩阵转换为字符串矩阵 fix()向零方向取整 floor()不大于自变量的最大整数 ceil()不小于自变量的最小整数 round()四舍五入到最邻近的整数 rem(x,y)求余函数 mod(x,y)% exp()指数函数 []空操作符 format格式符设置或改变数据输出格式(其中格式符决定数据的输出格式) e1:e2:e3冒号表达式可以产生一个行向量 (其中e1为初始值,e2为步长,e3为终止值) linspace(a,b,n)产生一个行向量 (其中a和b是生成向量的第一个和最后一个元素,n是元素总数) [注:linspace(a,b,n)与a:(b-a)/(n-1):b等价] A(:,j)表示取A矩阵的第j列全部元素 A(i,:)表示A矩阵第i行的全部元素 A(i,j)表示取A矩阵第i行、第j列的元素 A(i:i+m,:)表示取A矩阵第i~i+m行的全部元素 A(:,k:k+m)表示取A矩阵第k~k+m列的全部元素 A(i:i+m,k:k+m)表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素 zeros产生全0矩阵(零矩阵) ones产生全1矩阵(幺矩阵) eye产生单位矩阵 rand产生0~1间均匀分布的随机矩阵 randn产生均值为0,方差为1的标准正态分布随机矩阵 zeros(size(A))建立一个与矩阵A同样大小的零矩阵 reshape(A,m,n)在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵magic(n)生成一个n阶魔方矩阵(其每行、每列及两条对角线上的元素和都相等) vander(V)生成以向量V为基础向量的范得蒙矩阵(最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积) hilb(n)生成希尔伯特矩阵 invhilb(n)求n阶的希尔伯特矩阵的逆矩阵 (用一般方法求逆会因原始数据的微小扰动而产生不可靠的计算结果) toeplitz(x,y)生成一个以x为第1列,y为第1行的托普利兹矩阵(除第1行第1列外,

MATLAB中的矩阵与向量运算

4.1 数组运算和矩阵运算 从外观形状和数据结构来看,二维数组和数学中的矩阵没有区别.但是,矩阵作为一种变换或映射算符的体现,矩阵运算有着明确而严格的数学规则.而数组运算是MATLAB软件所定义的规则,其目的是为了数据管理方面,操作简单,指令形式自然和执行计算有效.所以,在使用MATLAB时,特别要明确搞清数组运算和矩阵运算的区别.表4.1.1列出了两种运算指令形式的实质内涵的异同. 4.1.1 数组运算和矩阵运算指令形式和实质内涵 数组运算矩阵运算 指令含义指令含义 A.'非共轭转置A'共轭转置 A=s把标量s赋给数组A的每个元素 s+B把标量s分别与数组B的每个元素相加s-B, B-s标量s分别与数组B的元素之差 s.*A标量s分别与数组A的元素之积s*A标量s分别与矩阵A的元素之积 s./B, B.\s标量s分别被数组B的元素除s*inv(B)矩阵B的逆乘标量s A.^n数组A的每个元素的n次方A^nA为方阵时,矩阵A的n次方 A+B数组对应元素的相加A+B矩阵相加 A-B数组对应元素的相减A-B矩阵相减 A.*B数组对应元素的相乘A*B内维相同矩阵的乘积 A./BA的元素被B的对应元素除A/BA右除B B.\A一定与上相同B\AA左除B(一般与右除不同) exp(A)以e为底,分别以A的元素为指数,求幂expm(A)A的矩阵指数函数 log(A)对A的各元素求对数logm(A)A的矩阵对数函数 sqrt(A)对A的积各元素求平方根sqrtm(A)A的矩阵平方函数 从上面可以看到,数组运算的运算如:乘,除,乘方,转置,要加"点".所以,我们要特别注意在求"乘,除,乘方,三角和指数函数"时,两种运算有着根本的区别.另外,在执行数组与数组运算时,参与运算的数组必须同维,运算所得的结果数组也是总与原数组同维. 4.2 数组的基本运算 在MATLAB中,数组运算是针对多个数执行同样的计算而运用的.MATLAB以一种非常直观的方式来处理数组. 4.2.1 点转置和共轭转置 . ' ——点转置.非共轭转置,相当于conj(A'). >> a=1:5; >> b=a. ' b = 1 2 3 4 5 >> c=b. ' c = 1 2 3 4 5 这表明对行向量的两次转置运算便得到原来的行向量. ' ——共轭转置.对向量进行转置运算并对每个元素取其共轭.如:

matlab矩阵运算函数

一、Matlab矩阵运算 1.变数也可用来存放向量或矩阵,并进行各种运算.如下面的列向量运算: x=[1 3 5 2]; y=2*x+1 y = 3 7 11 5 2.变数命名的规则 (1)第一个字母必须是英文字母 (2)字母间不可留空格 (3)最多只能有19个字母,MATLAB会忽略多余字母 我们可以随意更改、增加或删除向量的元素: y(3) = 2 %更改第三个元素 y = 3 7 2 5 y(6) = 10 %加入第六个元素 y = 3 7 2 5 0 10 y(4) = [] %删除第四个元素 y = 3 7 2 0 10 MATLAB会忽略所有在百分比符号(%)之后的文字,因为百分比之后的文字为程式的注解 量,具体执行方法为:输入A矩阵 >>A=[0 1;-6 -5] A= 0 1 -6 -5 E=eig(A) %求出方阵A的特征根E E= -2 -3 [V,D]=eig(A) %求出方阵A的特征向量V及其A的对角型D V= 0.4472 -0.3162 -0.8944 0.9487 D=

-2 0 0 -3 4.考虑一个“数学问题”, 该问题用半数学语言描述就是:如何生成一个 3x3 矩阵, 并将自然数 1, 2, ..., 9 分别置成这 9 个矩阵元素,才能使得每一行、每一列、且主、反对角线上元素相加都等于一个相同的数。这样的矩阵称为“魔方矩阵”。用 MATLAB 的 magic() 函数,我们可以由下面的命令立即生成这样的矩阵: >>A=magic(3) A= 8 1 6 3 5 7 4 9 2 还可以由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= 0 0 0 0 >> B=zeros(2,3) B= 0 0 0 0 0 0 >> C=[1 2; 3 4; 5 6]; >> size(C) %使用 size 指令得到C矩阵的大小 ans = 3 2 >>D=zeros(size(C)) %加上size指令将矩阵C 原来的元素全部以0取代 >>A=ones(2),B=ones(2,3) %1的矩阵 A= 1 1 1 1 B= 1 1 1 1 1 1 三、Matlab矩阵运算函数

MATLAB中的矩阵运算函数

1,round函数 函数简介 调用格式:Y = round(X) 在matlab中round也是一个四舍五入函数。对数组A中每个元素朝最近的方向取整数部分,并返回与A同维的整数数组B,对于一个复数参量A,则分别对其实部和虚数朝最近的方向取整数部分,并返回一复数数据B。 (1)fix(x) : 截尾取整. >>fix( [3.12 -3.12]) ans =3 -3 (2)floor(x):不超过x 的最大整数.(高斯取整) >>floor( [3.12 -3.12]) ans =3 -4 (3)ceil(x) : 大于x 的最小整数 >>ceil( [3.12 -3.12]) ans =4 -3 (4)四舍五入取整 >> round(3.12 -3.12) ans =0 >> round([3.12 -3.12]) ans =3 -3 2,reshape函数:重新调整矩阵的行数、列数、维数 先给上一段代码: >> a=[1 2 3;4 5 6;7 8 9;10 11 12]; >> b=reshape(a,2,6); 这段代码的结果是这样的: >>a 1 2 3 4 5 6 7 8 9 10 11 12 >>b 1 7 2 8 3 9 4 10 5 11 6 12 对于 b=reshape(a,m,n); 其中的规律是这样的,先把矩阵a按列拆分,然后拼接成一个大小为m*n的向量。然后对这个向量每隔m间隔取一个元素组成一个向量b_i,之后的向量b_i+1也是这样生成,只不过第一个元素往下移一位。这样做完之后得到m个大小为n的行向量,将这些行向量拼接即可得到矩阵b。 3,取模(mod)与取余(rem) 通常取模运算也叫取余运算,它们返回结果都是余数.rem和mod唯一的区别在于:当x和y的正负号一样的时候,两个函数结果是等同的;当x和y的符号不同时,rem 函数结果的符号和x的一样,而mod和y一样。 这是由于这两个函数的生成机制不同,rem函数采用fix函数,而mod函数采用了floor 函数(这两个函数是用来取整的,fix函数向0方向舍入,floor函数向无穷小方向舍入)。 rem(x,y)命令返回的是x-n.*y,如果y不等于0,其中的n = fix(x./y),而mod(x,y)返回的是x-n.*y,当y不等于0时,n=floor(x./y)

相关主题