最近在做稀疏矩阵的相关工作,其中一项是绘制稀疏矩阵的结构图。经过一下午研究,将相关成果整理如下:
matlab源代码为:
1、文件 test_bcsstk01.m:
% 绘制稀疏矩阵 bcsstk01.rsa 和 bcsstm01.rsa 的结构图
clear
% 读入rsa形式的刚度矩阵
Dpi = 150;
hb_to_mmm('matrix\bcsstk01.rsa','matrix\bcsstk01');
load matrix\bcsstk01;
ni=bcsstk01(1,1); %稀疏矩阵的行
nj=bcsstk01(1,2); %稀疏矩阵的列
nz=bcsstk01(1,3); %稀疏矩阵的非零元总数
nl=nz+1; %总行数
KL=sparse( bcsstk01(2:nl,1), bcsstk01(2:nl,2), bcsstk01(2:nl,3),
ni, nj ); %转换为稀疏矩阵(刚度矩阵下三角)
[dr,va]=get_diag(bcsstk01(2:nl,1),bcsstk01(2:nl,2),bcsstk01(2:nl,3),nz); %提取对角线元素
KD=sparse( dr, dr, va, ni, nj
); %刚度矩阵的对角线元素
K = KL + KL' -
KD; %得到最后的刚度矩阵
clear KL;
clear KD;
clear dr;
clear va;
figure(1)
subplot(1, 2, 1)