matlab稀疏矩阵生成与全元素矩阵相互转化

本博文源于matlab基础,主要讲述稀疏矩阵的生成与全元素矩阵之间的相互转化,sparse全元素矩阵可以转化为稀疏矩阵,而稀疏矩阵通过full可以转化为全元素矩阵

生成稀疏矩阵

这里用到一个函数sparse

S=sparse(A) % 将全元素A转化为稀疏矩阵S
S=sparse(i,j,s,m,n,nzmax) % 创建m*n维稀疏矩阵

下面通过例子进行巩固:

例子:将下面的矩阵转化为稀疏矩阵

matlab稀疏矩阵生成与全元素矩阵相互转化_第1张图片
利用第一种格式,代码如下:

>> 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

>> 

你可能感兴趣的:(数学建模)