$$ \begin{bmatrix} 1&3&5\\4&2&6\\7&8&9 \end{bmatrix} $$
我们都知道,这是一个3行3列的矩阵,但是在计算机内存里存储的时候,是线性的存储,也就是说所有矩阵的元素都被存储到了一行。
如果是行优先存储,那么矩阵a在内存里是这么存储的1,3,5,4,2,6,7,8,9。
如果使用的是列优先存储,那么矩阵a在内存里是这么存储的1,4,7,3,2,8,5,6,9。
沿对角线元素对称,只存对角线和上三角(或下三角)部分,具体参考下面的三角矩阵
$\begin{bmatrix} a_{1,1} \\ a_{2,1}&a_{2,2} \\\vdots &\vdots&\ddots &\\a_{n,1}&a_{n,2}&\cdots&a_{n,n}\end{bmatrix}$
上三角区或下三角区中所有元素均为同一常量 c,与对称矩阵类似,需要多存一个常数 c
以下三角为例
$\begin{bmatrix} a_{1,1} \\ a_{2,1}&a_{2,2}&&c \\\vdots &\vdots&\ddots &\\a_{n,1}&a_{n,2}&\cdots&a_{n,n}\end{bmatrix}$
存储在一维数组中:$|a_{1,1}|a_{2,1}|a_{2,2}|\cdots|a_{n,1}|a_{n,2}|\cdots|a_{n,n}|\ c\ |$