美文网首页
稀疏矩阵

稀疏矩阵

作者: sakura579 | 来源:发表于2020-08-31 08:29 被阅读0次

什么是稀疏矩阵
矩阵中有很多零,其中非零元素只是占了一小部分,大部分都是零,这种就叫稀疏矩阵。
稀疏矩阵概念没有严格的界定,0 的个数/在矩阵元素总数中占的百分比没有严格的规定,凭感觉的概念。

在严版数据结构中的定义,这里的零 可以是常数c 。

c是不是零 ,就是概念上的分歧。

三元组表示法:值、行、列(顺序存储结构)

三元组表示法
第一行(下标0):一般不存储任何一个元素
第一个代表非0元素个数,第二个代表行数,第三个代表列数

从下标1开始存储矩阵中的元素,一般按照行优先存储。
当然可以按照列优先,或者存储任意位置 也行,把所有元素存进去即可。

稀疏矩阵的两种链式存储结构

邻接表表示法

定义一个一维数组,数组的下标 对应于 要存储矩阵的行标
数组的元素 是一些指针,每个指针都指向一条链表,链表中的结点就保存了矩阵中的非零元素信息。
其中第一个信息 是非0元素的值,
第二个信息 是非0元素所在的列标

每条链表所在的行标保存了 这条链表中所有元素的行标信息。
每条链表中的结点保存了元素的值和列标信息。


每个十字链表都有一个 头节点,它一共有五个域
第一行:第一个域:行数,第二个域:列数,第三个域:非零元素个数
第二行:两个域引出两个指针,指向两个数组
第四个域:列数组,第五个域:行数组。
两个数组内存储了一些指针,指向表内的非零元素。


给表中的非零元素都申请一个结点
表元素结点类型 和表的头节点类型 是一样的,保存的信息不一样。

元素结点
第一个分量存的:行号
第二个分量存的:列号
第三个分量存的:元素值
第四、五个分量存的:指针


十字链表构造 和 二维数组 是类似的。
只不过是只给非零元素分配存储空间。

行方向上 结点之间的指针是从结点第五个域引出来的。


列方向上 结点之间的指针是从结点第四个域引出来的。

相关文章

  • 稀疏矩阵

    对于经过ReLU之后的网络,通常存在很多的0。这时如果用稀疏矩阵来表示,则会节省存储空间,或者带来计算上的便利。稀...

  • 稀疏矩阵

    什么是稀疏矩阵矩阵中有很多零,其中非零元素只是占了一小部分,大部分都是零,这种就叫稀疏矩阵。稀疏矩阵概念没有严格的...

  • 稀疏矩阵

    一、实验目的 二、实验内容 1. 阅读、理解、调试程序3_1.c,掌握稀疏矩阵的压缩存储算法。 2. 阅读、理解、...

  • 稀疏矩阵

    #include #include #define ok 1 #define error 0 #define MA...

  • 稀疏矩阵

    在矩阵中,如果数值为0的元素数目远远多于非0元素的数目,并且非0元素分布无规律时,则称该矩阵为稀疏矩阵(spars...

  • 稀疏矩阵

    1.什么是稀疏矩阵?2.什么时候使用稀疏矩阵? 稀疏矩阵就是就是在一个矩阵的的阵列中大多数都是默认数据0为什么使用...

  • 构建邻接矩阵

    构建邻接矩阵 net = spconvert(linklist);%把外部数据转换为稀疏矩阵 稀疏矩阵 对于矩阵 ...

  • 机器学习中的稀疏矩阵

    什么是稀疏矩阵? 大多数元素都是0的矩阵称为稀疏矩阵,否则称为稠密矩阵。规模巨大的稀疏矩阵在应用机器学习中很常见,...

  • MATLAB稀疏矩阵

    7稀疏矩阵 稀疏矩阵是一种特殊类型的矩阵,即矩阵中包括较多的零元素。对于稀疏矩阵的这种特性,在MATLAB中可以只...

  • 稀疏矩阵及其压缩格式

    一般情况下,稀疏矩阵指的是元素大部分是0的矩阵(有些资料定义非零元素不超过5%的矩阵,为稀疏矩阵), 矩阵的稀疏性...

网友评论

      本文标题:稀疏矩阵

      本文链接:https://www.haomeiwen.com/subject/epiesktx.html