matlab矩阵代码大全(matlab矩阵运算代码)
求用matlab求矩阵的伴随矩阵的秩的代码。。。急急急!!!
求伴随矩阵和矩阵的秩可以以下代码:
A=magic(5);%矩阵A
A=det(A)*inv(A);%求伴随矩阵
Az=rank(A);%求矩阵的秩用rank函数
在MATLAB中求矩阵特征值和特征向量的代码
clc;clear;close;
A=[3,-1,-2;2,0,-2;2,-1,-1];
[X,B]=eig(A)%求矩阵A的特征值和特征向量,其中B的对角线元素是特征值,
%X的列是相应的特征向量
最后的结果是:
X=
0.7276-0.57740.6230
0.4851-0.5774-0.2417
0.4851-0.57740.7439
B=
1.000000
00.00000
001.0000
扩展资料:
特征值和特征向量的求解根据项目的需求或者是矩阵的具体形式,主要可以分成如下三种形式:
1、只需要获得矩阵的最大特征值和特征值所对应的特征向量。
2、需要求取矩阵的所有特征值。
3、需要求取特征值和特征向量的矩阵为实对称矩阵,则可以通过另一种方法进行求解。
这三种形式特征值和特征向量的求取:
1.如果自己仅仅要求最大特征值的话肯定采用形式1的算法,该算法的优点是时间复杂度较低,计算量相对较小,该方法不但能够求取特征值和特征向量,而且只要特征值不全为0,该方法都能获得想要的结果。
2.如果需要获得一个矩阵的所有特征值,则通过形式2可以很好的解决该问题,但是该方法的缺点是仅仅能够获得特征值,获得特征值之后利用其它方法进行求解,这样做自然而然计算量就大了起来。
3.如果矩阵为实对称矩阵,那么可以通过形式3对其进行特征值和特征向量的求取,该方法相对于形式2的好处就是能够一次性将特征值和特征向量求取出来,缺点就是矩阵必须是实对称矩阵,至于算法复杂度方面我没有进行测试。
在MATLAB中建立随机数矩阵
在MATLAB中可以使用以下代码来建立10×10的随机数矩阵,并将其中大于40小于60的数用NaN替换:
matlab
A = rand(10,10)*100; % 产生0到100之间的随机数矩阵
B = (A 40 A 60); % 产生逻辑数组,符合条件的元素为1,否则为0
A(B) = NaN; % 将符合条件的元素用NaN替换
上述代码中,rand(10,10)*100产生10×10的随机数矩阵,其中每个元素都在0到100之间均匀分布。然后,通过逻辑数组B,可以得到所有大于40小于60的元素的位置。最后,将这些元素的值用NaN替换即可。
运行上述代码后,可以通过A查看生成的随机数矩阵。
matlab软件的矩阵常用指令介绍
方法/步骤
1、单位矩阵创建
在线性代数运算时,常需要单位矩阵E,在matlab中可使用eyes函数,如下所示即为其语法:
Y
=
eye(n)
Y
=
eye(m,n)
Y
=
eye([m
n])
Y
=
eye(size(A))
Y
=
eye
Y
=
eye(m,
n,
classname)
作为示例,常用Y
=
eye(n)指令,比如要3x3单位矩阵,则可以如下指令:
Y
=
eye(3)
输出:
Y
=
1
1
1
2、全零矩阵
在线性代数运算时,有时候需要全零矩阵,可使用zeros函数。
B
=
zeros(n)
B
=
zeros(m,n)
B
=
zeros([m
n])
B
=
zeros(m,n,p,...)
B
=
zeros([m
n
p
...])
B
=
zeros(size(A))
Y
=
zeros
zeros(m,
n,...,classname)
zeros([m,n,...],classname)
以上是其全部语法,常用的指令是:B
=
zeros(n)与
B
=
zeros(m,n)如下:
B
=
zeros(3)
输出:
B
=
3、元素全为1阵
在矩阵运算时,会遇到元素全为1矩阵,此时可以借助于ones函数。
Y
=
ones(n)
Y
=
ones(m,n)
Y
=
ones([m
n])
Y
=
ones(m,n,p,...)
Y
=
ones([m
n
p
...])
Y
=
ones(size(A))
Y
=
ones
ones(m,
n,...,classname)
ones([m,n,...],classname)
如上是其全部语法,其中常用的还是:Y
=
ones(n)
与
Y
=
ones(m,n)
如下示例:
Y
=
ones(3)
输出:
Y
=
1
1
1
1
1
1
1
1
1
4、随机矩阵
在概率分析或是数理推断时常需要借助随机矩阵,在matlab中可使用rand函数实现,其语法如下:
r
=
rand(n)
r
=
rand(m,n)
r
=
rand([m,n])
r
=
rand(m,n,p,...)
r
=
rand([m,n,p,...])
r
=
rand
r
=
rand(size(A))
r
=
rand(...,
'double')
r
=
rand(...,
'single')
当然,常用的指令还是:
r
=
rand(n)
和
r
=
rand(m,n)
示例:
r
=
rand(3,2)
输出的是3行2列的随机矩阵:
r
=
0.8147
0.9134
0.9058
0.6324
0.1270
0.0975
5、对角阵
在矩阵分析与计算时,尤其是计算矩阵的秩时,常会化简矩阵为对角阵,尤其是方阵分析。在matlab中可借助diag函数求特定矩阵的对角阵,如下示例:
A
=
[1,2,3;
4,5,6;
7,8,9];
输入的矩阵A是3x3方阵,输入如下指令:
diag(A)
函数输出如下图所示:
6、提取矩阵三角部分
有时候需要提取矩阵的下三角亦或是下三角元素,可以使用tril或triu提取。
输入矩阵:
A
=
[1,2,3;
4,5,6;
7,8,9];
下三角提取:
trilow
=
tril(A)
输出:
trilow
=
1
4
5
7
8
9
上三角提取:
triup
=
triu(A)
输出:
triup
=
1
2
3
5
6
9
7、其它
作为矩阵运算实验室,matlab提供许多矩阵运算指令例如矩阵翻转指令flipud、fliplr,矩阵重排reshape、矩阵求秩rank等,大家可以查阅帮助文件了解其语法。