本博文源于matlab基础,主要讲述稀疏矩阵的生成与全元素矩阵之间的相互转化,sparse全元素矩阵可以转化为稀疏矩阵,而稀疏矩阵通过full可以转化为全元素矩阵
生成稀疏矩阵
这里用到一个函数sparse
S=sparse(A) % 将全元素A转化为稀疏矩阵S
S=sparse(i,j,s,m,n,nzmax) % 创建m*n维稀疏矩阵
下面通过例子进行巩固:
例子:将下面的矩阵转化为稀疏矩阵
利用第一种格式,代码如下:
>> A=[0 5 0 0;1 0 0 6;0 0 2 0];
>> sparse(A)
ans =
(2,1) 1
(1,2) 5
(3,3) 2
(2,4) 6
>>
例子:创建一个6*6的稀疏矩阵,要求:非零元素在主对角线上,其数值为5
>> A=sparse(1:6,1:6,5)
A =
(1,1) 5
(2,2) 5
(3,3) 5
(4,4) 5
(5,5) 5
(6,6) 5
>>
还原成全元素矩阵
格式
A=full(S) % 将稀疏矩阵S转化为全元素矩阵A
例子:创建一个4阶稀疏矩阵,并将其还原成全矩阵,要求非零元为:a12=5,a23=1,a32=3
>> A = sparse([1 2 3],[2 3 2],[5 1 3],4,4)
A =
(1,2) 5
(3,2) 3
(2,3) 1
>> A1=full(A)
A1 =
0 5 0 0
0 0 1 0
0 3 0 0
0 0 0 0
>>