回 帖 发 新 帖 刷新版面

主题:求上三角和逆对角矩阵储存的方法

如何将上三角和逆对角矩阵压缩储存到一维数组中

回复列表 (共2个回复)

沙发

上三角矩阵,把上三角元素存在一起,比如
a11 a12 a13
0  a22 a23
0  0  a33

0位置不存储,元素存在连续的内存中:a11 a12 a13 a22 a23 a33

于是只需要给出一个坐标位置的转换关系就行了,内在中的位置p -> i,j,也就是B[p]对应元素a[i,j],从p算i,j没有必要,因为在运算中我们是知道i,j的,我们要换算p,以取或者存该元素.
如果i,j从0算起,一直到n-1,n为方阵宽,则a[i,j]位于第i+1行,它前面有i行,构成等差数列,先求和得s(i,n),再加上j-i,表示第i+1行上元素个数-1,于是p=s(i,n)+j-i.

逆对角矩阵是什么样子我不清楚,大体思路一样,按一个约定方法存储,找数学关系,做出转换式.

板凳

矩阵的压缩存储

我的思想是用静态链表(一维数组也行),找出数组下标k和矩阵i j之间的关系,ls已经给出了,这个方法还可以压缩下三角以及对称矩阵

至于逆对角矩阵更简单了 因为n阶逆对角矩阵的非0元素有n个且满足 i+j=n+1 用一个数组int [n]足能满足

我来回复

您尚未登录,请登录后再回复。点此登录或注册