对角矩阵压缩为一维数组

对角矩阵是一个除主对角线及其两边以外的所有元素皆为0的矩阵。

今天主要讲的是如何将对角矩阵压缩储存在一个一维数组里面。

首先一个对角矩阵的有效元素个数为:2+2+3*(n-2)=3n-2。

 

假设原矩阵行为i,列为j,都从1开始,压缩数组下标从1开始储存

则一维数组a[k]与i,j的关系为i=k/3+1;

                                            j=k-2*i+2=2。

部分源代码:

int i,j,k;

int a[100];

int b[10][10];

int n,sum;

 

sum=3*n-2;

 

for (k=1;k<=sum;k++)

{

i=k/3+1;

j=k-2*i+2;

a[k]=b[i][j];

}

 

posted @ 2020-10-21 15:11  好你  阅读(455)  评论(0)    收藏  举报