對角矩陣壓縮算法
以44對角矩陣為例子
首先我們得知道對角矩陣的概念對角矩陣(diagonal matrix)是一個主對角線之外的元素皆為0的矩陣,常寫為diag(a1,a2,...,an) 。對角矩陣可以認為是矩陣中最簡單的一種,值得一提的是:對角線上的元素可以為 0 或其他值,對角線上元素相等的對角矩陣稱為數量矩陣;對角線上元素全為1的對角矩陣稱為單位矩陣—來自百度百科。
比如 1 2 0 0
5 4 3 0
0 1 2 3
0 0 2 3
我們可以發現三對角矩陣首行和尾行分別有2個非0元素,其余行都是3個非0元素
推廣至在有n 行的情況 非0 元素 3(n-2)+4=3n-2
推算下標k值
對數組a【i】【j】分配至對角矩陣前i行中有(i-1)3+2根據對角線推元素位子得不是i-j+1就是j-i+1所以k=(i-1)3+2+j-i+1=i2+j
所以我們可以用k的值來推算i,j i=(k+1)/3
J=k-2*i;
得出k於i,j的關系后便可以將矩陣進行壓縮從而避免了0元素的空間占用,直接將矩陣壓縮