MATLAB矩阵操作【z】
2010-08-04 20:10
225 查看
[b]特殊矩阵的实现[/b]
[b]单位阵的生成
eye(n)
eye(m,n) [/b]
[b]零矩阵的生成
zeros(n)
zeros(m,n) [/b]
[b]全1矩阵的生成
ones(n)
ones(m,n) [/b]
[b]随机元素矩阵函数
rand(n,m)
rand(n) [/b]
[b]对角矩阵
diag(V) % V=[1 2 3 4]; [/b]
[b]伴随矩阵
compan(P) % p=[1,a1,a2,...,an] [/b]
[b]上三角矩阵 下三角矩阵
triu(B)
tril(B) [/b]
[b]矩阵函数[/b]
[b]矩阵的行列式
det(A) [/b]
[b]矩阵求逆
inv(A)
pinv(A) [/b]
[b]矩阵的迹
trace(A) [/b]
[b]矩阵的秩
rank(A) [/b]
[b]矩阵三角分解
[L,U] = lu(A) [/b]
[b]矩阵奇异值分解
cond(A) [/b]
[b]矩阵的范数
N = norm(A,选项) [/b]
[b]矩阵的特征多项值与特征向量
[V,D]=eig(A) [/b]
[b]矩阵的特征多项式、特征方程和特征根
P = poly(A)
V = roots(P) [/b]
------------------------------------------------------------------------------------------------------------------
[b]一、[b]矩阵的构造[/b][/b]
在[b]MatLab中,构造矩阵的方法有两种。一种是直接法,就是通过键盘输入的方式直接构造矩阵。另一种是利用函数产生矩阵。[/b]
例1.利用pascal函数来产生一个[b]矩阵[/b]
A=pascal(3)
A=
1 1 1
1 2 3
1 3 6
例2.利用magic函数来产生一个[b]矩阵
B=magic(3)
B=[/b]
8 1 6
3 5 7
4 9 2
例3.还可以利用函数产生一个4*3的随机[b]矩阵[/b]
>>c=rand(4,3)
c=
0.9501 0.8913 0.8214
0.2311 0.7621 0.4447
0.6068 0.4565 0.6154
0.4860 0.0185 0.7919
例4.利用直接输入法可产生列[b]矩阵、行矩阵及常数[/b]
u=[3;1;4]
u=
3
1
4
v=[2 0 -1]
v=
2 0 -1
s=7
s=
7
[b]二、[b]矩阵的基本运算[/b][/b]
1、四则运算
例5.[b]矩阵的加法[/b]
X=A+B
X=
9 2 7
4 7 10
5 12 8
例6.[b]矩阵的减法
Y=X-A
Y=
8 1 6
3 5 7
4 9 2 [/b]
[b]注: 若二个矩阵的大小不完全相同,则会出错![/b]
例如,X=A+u
??? Error using ==> plus
Matrix dimensions must agree。
例7.[b]矩阵的乘法[/b]
X=A*B
X=
15 15 15
26 38 26
41 70 39
[b]注: 若第一个矩阵的列数和第二个矩阵行数不相同,这两个矩阵就不可以相乘。[/b]
例如,X=A*v
??? Error using ==> mtimes
Inner matrix dimensions must agree。
在[b]MATLAB中,矩阵的除法有两个运算符号,分别为左除“\”与右除“/”,矩阵的右除运算速度要慢一点,而左除运算可以避免奇异矩阵的影响,它们的作用主要用于求解线性方程组,我们在后面会涉及到矩阵的除法。[/b]
2、[b]矩阵的转置、逆运算及行列式运算[/b]
与线性代数中一样,[b]矩阵的转置只需用符号“,”来表示即可。[/b]
例8.求[b]矩阵B的转置[/b]
X=B'
X=
8 3 4
1 5 9
6 7 2
线性代数中求[b]矩阵逆的运算非常复杂,而在MATLAB中,矩阵的逆运算只需要函数“inv”来实现,这大大简化了计算过程。[/b]
例9.求[b]矩阵A的逆[/b]
X=inv(A)
X=
3 -3 1
-3 5 -2
1 -2 1
在[b]MATLAB中,求矩阵的行列式大小,可用函数“det”实现。[/b]
例10.求[b]矩阵A的行列式[/b]
X=det(A)
X=
1
[b]注: 在求矩阵的逆和行列式时,一定要求矩阵是一个方阵,否则会出错![/b]
例如,>>X=inv(u)
??? Error using ==> inv
Matrix must be square。
再如,X=det(u)
??? Error using ==> det
Matrix must be square。
[b]三、[b]矩阵的常用函数运算[/b][/b]
1.[b]矩阵的特征值运算[/b]
在线性代数中,计算[b]矩阵特征值及特征向量的过程相当麻烦,但在MATLAB中,矩阵特征值运算只需要函数“eig”或“eigs”即可。[/b]
例11.求[b]矩阵A的特征值及特征向量[/b]
>>[b,c]=eig(A)
b=
-0.5438 -0.8165 0.1938
0.7812 -0.4082 0.4722
-0.3065 0.4082 0.8599
c=
0.1270 0 0
0 1.0000 0
0 0 7.8730
上例中的[b]b、c矩阵分别为特征向量矩阵和特征值矩阵。[/b]
2.[b]矩阵的秩运算[/b]
[b]矩阵的秩在求解线性方程组中应用非常广泛,而在线性代数中计算矩阵的秩也非常复杂,但在MATLAB中,矩阵的秩只需要用函数“rank”即可。[/b]
例12.求[b]矩阵A的秩[/b]
>>x=rank(A)
x=
3
3.[b]矩阵的正交化运算[/b]
在[b]MATLAB中,矩阵的正交化运算可由函数“orth”计算得到。下面的例子用来求矩阵的一组正交基,有了正交基就可以对矩阵进行正交化了。[/b]
例13.求[b]矩阵A的正交基[/b]
>>x=orth(A)
x=
-0.1938 0.8165 0.5438
-0.4722 0.4082 -0.7812
-0.8599 -0.4082 0.3065
4.[b]矩阵的迹运算[/b]
[b]矩阵的迹是指矩阵主对角线上所有元素的和,在MATLAB中,矩阵的迹可由函数“trace”计算得到。[/b]
例14.求[b]矩阵A的迹[/b]
>>x=trace(A)
x=
9
[b]四、特殊[b]矩阵的生成[/b][/b]
[b]MATLAB中提供了几个特殊矩阵,主要包括如下:[/b]
1.空[b]矩阵[/b]
空[b]矩阵用“[]”表示,空矩阵的大小为零,但变量名存在于工作空间中。[/b]
例15
>>[]
ans=
[]
2.单位[b]矩阵[/b]
在[b]MATLAB中,单位矩阵可用函数“eye(n,m)”实现,其中n表行数,m表列数。[/b]
例16
>>x=eye(4,3)
x=
1 0 0
0 1 0
0 0 1
0 0 0
3.全部元素为1的[b]矩阵[/b]
在[b]MATLAB中,全部元素为1的矩阵可用函数“ones(n,m)”实现。[/b]
例17
>>x=ones(4,3)
x=
1 1 1
1 1 1
1 1 1
1 1 1
4.全部元素为0的[b]矩阵[/b]
在[b]MATLAB中,全部元素为0的矩阵可用函数“zeros(n,m)”实现。[/b]
例18
>>x=zeros(4,3)
x=
0 0 0
0 0 0
0 0 0
0 0 0
5.魔方[b]矩阵[/b]
魔方[b]矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。MATLAB提供了求魔方矩阵的函数“magic(n)”,其功能是生成一个n阶魔方阵。[/b]
6.伴随[b]矩阵[/b]
在[b]MATLAB中,某个矩阵的伴随矩阵可用函数“compan(A)”实现。[/b]
例20
>>u=[1 0 -7 6];
>>x=compan(u)
x=
0 7 -6
1 0 0
0 1 0
[b]注: 函数compan()中的变量必须是向量形式,而不能是矩阵。[/b]
7.随机[b]矩阵[/b]
随机[b]矩阵在数理统计的研究中非常重要,它们表示元素服从某个分布如均匀分布、正态分布的矩阵。在MATLAB中,随机矩阵可用函数“rand(n,m)”实现。[/b]
例21
>>x=rand(4,3)
x=
0.9501 0.8913 0.8214
0.2311 0.7621 0.4447
0.6068 0.4565 0.6154
0.4860 0.0185 0.7919
8.帕斯卡[b]矩阵
我们知道,二次项展开后的系数随n的增大组成一个三角形表,称为[/b]
杨辉三角形。由杨辉三角形表组成的[b]矩阵称为帕斯卡(Pascal)矩阵,函数pascal(n)生成一个n阶帕斯卡矩阵。[/b]
例22
>>x=pascal(3)
x=
1 1 1
1 2 3
1 3 6
9.范得蒙[b]矩阵[/b]
在[b]MATLAB中,函数vander(V)生成以向量V为基础向量的范得蒙矩阵。[/b]
原帖:http://hi.baidu.com/%B6%AC%CC%EC%C0%EF%B5%C4%D2%BB%BF%C3%B2%DD/blog/item/3d2190878d6d662fc75cc371.html
[b]单位阵的生成
eye(n)
eye(m,n) [/b]
[b]零矩阵的生成
zeros(n)
zeros(m,n) [/b]
[b]全1矩阵的生成
ones(n)
ones(m,n) [/b]
[b]随机元素矩阵函数
rand(n,m)
rand(n) [/b]
[b]对角矩阵
diag(V) % V=[1 2 3 4]; [/b]
[b]伴随矩阵
compan(P) % p=[1,a1,a2,...,an] [/b]
[b]上三角矩阵 下三角矩阵
triu(B)
tril(B) [/b]
[b]矩阵函数[/b]
[b]矩阵的行列式
det(A) [/b]
[b]矩阵求逆
inv(A)
pinv(A) [/b]
[b]矩阵的迹
trace(A) [/b]
[b]矩阵的秩
rank(A) [/b]
[b]矩阵三角分解
[L,U] = lu(A) [/b]
[b]矩阵奇异值分解
cond(A) [/b]
[b]矩阵的范数
N = norm(A,选项) [/b]
[b]矩阵的特征多项值与特征向量
[V,D]=eig(A) [/b]
[b]矩阵的特征多项式、特征方程和特征根
P = poly(A)
V = roots(P) [/b]
------------------------------------------------------------------------------------------------------------------
[b][b]MatLab中的矩阵[/b][/b]
我们知道,求解线性方程组是线性代数课程中的核心内容,而[b]矩阵又在求解线性方程组的过程中扮演着举足轻重的角色。下面我们就利用科学计算软件MATLAB来演示如何使用矩阵,同时,也使学生对线性代数的认识更加理性。[/b][b]一、[b]矩阵的构造[/b][/b]
在[b]MatLab中,构造矩阵的方法有两种。一种是直接法,就是通过键盘输入的方式直接构造矩阵。另一种是利用函数产生矩阵。[/b]
例1.利用pascal函数来产生一个[b]矩阵[/b]
A=pascal(3)
A=
1 1 1
1 2 3
1 3 6
例2.利用magic函数来产生一个[b]矩阵
B=magic(3)
B=[/b]
8 1 6
3 5 7
4 9 2
例3.还可以利用函数产生一个4*3的随机[b]矩阵[/b]
>>c=rand(4,3)
c=
0.9501 0.8913 0.8214
0.2311 0.7621 0.4447
0.6068 0.4565 0.6154
0.4860 0.0185 0.7919
例4.利用直接输入法可产生列[b]矩阵、行矩阵及常数[/b]
u=[3;1;4]
u=
3
1
4
v=[2 0 -1]
v=
2 0 -1
s=7
s=
7
[b]二、[b]矩阵的基本运算[/b][/b]
1、四则运算
例5.[b]矩阵的加法[/b]
X=A+B
X=
9 2 7
4 7 10
5 12 8
例6.[b]矩阵的减法
Y=X-A
Y=
8 1 6
3 5 7
4 9 2 [/b]
[b]注: 若二个矩阵的大小不完全相同,则会出错![/b]
例如,X=A+u
??? Error using ==> plus
Matrix dimensions must agree。
例7.[b]矩阵的乘法[/b]
X=A*B
X=
15 15 15
26 38 26
41 70 39
[b]注: 若第一个矩阵的列数和第二个矩阵行数不相同,这两个矩阵就不可以相乘。[/b]
例如,X=A*v
??? Error using ==> mtimes
Inner matrix dimensions must agree。
在[b]MATLAB中,矩阵的除法有两个运算符号,分别为左除“\”与右除“/”,矩阵的右除运算速度要慢一点,而左除运算可以避免奇异矩阵的影响,它们的作用主要用于求解线性方程组,我们在后面会涉及到矩阵的除法。[/b]
2、[b]矩阵的转置、逆运算及行列式运算[/b]
与线性代数中一样,[b]矩阵的转置只需用符号“,”来表示即可。[/b]
例8.求[b]矩阵B的转置[/b]
X=B'
X=
8 3 4
1 5 9
6 7 2
线性代数中求[b]矩阵逆的运算非常复杂,而在MATLAB中,矩阵的逆运算只需要函数“inv”来实现,这大大简化了计算过程。[/b]
例9.求[b]矩阵A的逆[/b]
X=inv(A)
X=
3 -3 1
-3 5 -2
1 -2 1
在[b]MATLAB中,求矩阵的行列式大小,可用函数“det”实现。[/b]
例10.求[b]矩阵A的行列式[/b]
X=det(A)
X=
1
[b]注: 在求矩阵的逆和行列式时,一定要求矩阵是一个方阵,否则会出错![/b]
例如,>>X=inv(u)
??? Error using ==> inv
Matrix must be square。
再如,X=det(u)
??? Error using ==> det
Matrix must be square。
[b]三、[b]矩阵的常用函数运算[/b][/b]
1.[b]矩阵的特征值运算[/b]
在线性代数中,计算[b]矩阵特征值及特征向量的过程相当麻烦,但在MATLAB中,矩阵特征值运算只需要函数“eig”或“eigs”即可。[/b]
例11.求[b]矩阵A的特征值及特征向量[/b]
>>[b,c]=eig(A)
b=
-0.5438 -0.8165 0.1938
0.7812 -0.4082 0.4722
-0.3065 0.4082 0.8599
c=
0.1270 0 0
0 1.0000 0
0 0 7.8730
上例中的[b]b、c矩阵分别为特征向量矩阵和特征值矩阵。[/b]
2.[b]矩阵的秩运算[/b]
[b]矩阵的秩在求解线性方程组中应用非常广泛,而在线性代数中计算矩阵的秩也非常复杂,但在MATLAB中,矩阵的秩只需要用函数“rank”即可。[/b]
例12.求[b]矩阵A的秩[/b]
>>x=rank(A)
x=
3
3.[b]矩阵的正交化运算[/b]
在[b]MATLAB中,矩阵的正交化运算可由函数“orth”计算得到。下面的例子用来求矩阵的一组正交基,有了正交基就可以对矩阵进行正交化了。[/b]
例13.求[b]矩阵A的正交基[/b]
>>x=orth(A)
x=
-0.1938 0.8165 0.5438
-0.4722 0.4082 -0.7812
-0.8599 -0.4082 0.3065
4.[b]矩阵的迹运算[/b]
[b]矩阵的迹是指矩阵主对角线上所有元素的和,在MATLAB中,矩阵的迹可由函数“trace”计算得到。[/b]
例14.求[b]矩阵A的迹[/b]
>>x=trace(A)
x=
9
[b]四、特殊[b]矩阵的生成[/b][/b]
[b]MATLAB中提供了几个特殊矩阵,主要包括如下:[/b]
1.空[b]矩阵[/b]
空[b]矩阵用“[]”表示,空矩阵的大小为零,但变量名存在于工作空间中。[/b]
例15
>>[]
ans=
[]
2.单位[b]矩阵[/b]
在[b]MATLAB中,单位矩阵可用函数“eye(n,m)”实现,其中n表行数,m表列数。[/b]
例16
>>x=eye(4,3)
x=
1 0 0
0 1 0
0 0 1
0 0 0
3.全部元素为1的[b]矩阵[/b]
在[b]MATLAB中,全部元素为1的矩阵可用函数“ones(n,m)”实现。[/b]
例17
>>x=ones(4,3)
x=
1 1 1
1 1 1
1 1 1
1 1 1
4.全部元素为0的[b]矩阵[/b]
在[b]MATLAB中,全部元素为0的矩阵可用函数“zeros(n,m)”实现。[/b]
例18
>>x=zeros(4,3)
x=
0 0 0
0 0 0
0 0 0
0 0 0
5.魔方[b]矩阵[/b]
魔方[b]矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。MATLAB提供了求魔方矩阵的函数“magic(n)”,其功能是生成一个n阶魔方阵。[/b]
6.伴随[b]矩阵[/b]
在[b]MATLAB中,某个矩阵的伴随矩阵可用函数“compan(A)”实现。[/b]
例20
>>u=[1 0 -7 6];
>>x=compan(u)
x=
0 7 -6
1 0 0
0 1 0
[b]注: 函数compan()中的变量必须是向量形式,而不能是矩阵。[/b]
7.随机[b]矩阵[/b]
随机[b]矩阵在数理统计的研究中非常重要,它们表示元素服从某个分布如均匀分布、正态分布的矩阵。在MATLAB中,随机矩阵可用函数“rand(n,m)”实现。[/b]
例21
>>x=rand(4,3)
x=
0.9501 0.8913 0.8214
0.2311 0.7621 0.4447
0.6068 0.4565 0.6154
0.4860 0.0185 0.7919
8.帕斯卡[b]矩阵
我们知道,二次项展开后的系数随n的增大组成一个三角形表,称为[/b]
杨辉三角形。由杨辉三角形表组成的[b]矩阵称为帕斯卡(Pascal)矩阵,函数pascal(n)生成一个n阶帕斯卡矩阵。[/b]
例22
>>x=pascal(3)
x=
1 1 1
1 2 3
1 3 6
9.范得蒙[b]矩阵[/b]
在[b]MATLAB中,函数vander(V)生成以向量V为基础向量的范得蒙矩阵。[/b]
原帖:http://hi.baidu.com/%B6%AC%CC%EC%C0%EF%B5%C4%D2%BB%BF%C3%B2%DD/blog/item/3d2190878d6d662fc75cc371.html
相关文章推荐
- Matlab中导入文本文件中的数据 矩阵合并 以及C++中删除文件操作
- matlab基本图像矩阵操作
- matlab中的矩阵操作
- MATLAB矩阵操作合集
- Matlab矩阵基本操作(定义,运算)
- matlab处理矩阵的一些简易操作和画图的一些小技巧
- Matlab与线性代数 -- 矩阵的左右翻转、上下翻转和矩阵的逆时针旋转90操作
- MATLAB基本操作(六):矩阵操作的相关函数
- NumPy的详细教程(类似MATLAB的东西,操作矩阵)
- 【matlab】矩阵操作
- matlab矩阵操作大全
- Python 之 Python与MATLAB 矩阵操作小结
- matlab:矩阵操作
- matlab矩阵操作大全
- MATLAB与c/c++之矩阵操作差别
- Matlab学习笔记二:矩阵的高级操作
- matlab矩阵操作
- matlab矩阵的表示和简单操作
- matlab矩阵的表示和简单操作
- MATLAB基本操作(九):可视化矩阵的矢量场quiver函数