问题标签 [sparse-matrix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1669 浏览

javascript - 在 JScript 中遍历负数组索引

我在 Jscript 中有一个稀疏数组,非空元素出现在负索引和正索引处。当我尝试使用 for in 循环时,它不会将数组从最低(负)索引遍历到最高正索引。相反,它按照我添加元素的顺序返回数组。枚举也不起作用。有什么方法可以让我这样做吗?

例子

循环时,它应该给我 A 然后 C 给 B。

0 投票
7 回答
54763 浏览

java - Java中的稀疏矩阵/数组

我正在开发一个用 Java 编写的项目,这需要我构建一个非常大的二维稀疏数组。非常稀疏,如果这有所作为。无论如何:这个应用程序最关键的方面是时间方面的效率(假设内存负载,虽然几乎没有无限到允许我使用标准二维数组 - 关键范围在两个维度上都是数十亿)。

在阵列中的千千万万个单元中,将有数十万个单元包含一个对象。我需要能够非常快速地修改单元格内容。

无论如何:有人知道为此目的特别好的图书馆吗?它必须是 Berkeley、LGPL 或类似的许可证(没有 GPL,因为该产品不能完全开源)。或者,如果只有一种非常简单的方法可以制作自制稀疏数组对象,那也可以。

我正在考虑MTJ,但没有听到任何关于它的质量的意见。

0 投票
2 回答
397 浏览

c++ - 指针类帮助

我正在用 C++ 编写一个稀疏矩阵类,其中每一行和每一列都是来自我创建的类(恰当地命名为:LinkedList)的链表数组。

我想编写一个类,它是指向该矩阵中一个单元格的“智能”指针。

在那个类中,比如说LIPointer,我将实现一个++运算符函数,用于在矩阵的链表中移动。

每次创建linkedlistPointer.

我不能使用stl::array等,因为我必须自己构建它们。

以下是声明:




任何建议或方向将不胜感激。

更新:它需要在整个矩阵上运行。这就是为什么我认为我需要移动(通过引用)数组和矩阵的大小。预期的效果是,这将从第一行的链表中的最后一个单元格到第二行中的第一个单元格。

0 投票
1 回答
2205 浏览

sql - 稀疏数据:RDBMS 中的高效存储和检索

我有一个表,表示跨项目修订的源文件指标的值,如下所示:

(上述数据的关系视图不同。每行包含以下列:Revision、FileId、Value。计算数据的文件及其修订版存储在 Subversion 存储库中,因此我们试图表示存储库的关系模式中的结构。)

在 10000 个修订版中最多可以有 23750 个文件(ImageMagick绘图程序就是这种情况)。如您所见,连续修订之间的大多数值是相同的,因此该表的有用数据非常稀疏。我正在寻找一种存储数据的方法

  • 避免复制并有效地使用空间(目前非稀疏表示需要 260 GB(数据+索引)来存储不到 10% 的数据)
  • 允许我使用 SQL 查询有效地检索特定修订的值(无需显式循环通过修订或文件)
  • 允许我有效地检索特定指标值的修订。

理想情况下,该解决方案不应该依赖于特定的RDBMS,并且应该与Hibernate兼容。如果这不可能,我可以使用 Hibernate、MySQL 或 PostgreSQL 特定的功能。

0 投票
1 回答
1952 浏览

math - 矩阵市场到 CRS 转换(稀疏矩阵)

在处理稀疏矩阵时,如何将Matrix Market 格式转换为 CRS(压缩行存储)?

0 投票
8 回答
29307 浏览

r - 计算矩阵的特征值有多昂贵?

计算矩阵的特征值有多昂贵?

最佳算法的复杂度是多少?

如果我有一个 1000 x 1000 的矩阵,实际需要多长时间?我认为如果矩阵稀疏会有帮助吗?

是否存在特征值计算不会终止的情况?

R中,我可以计算特征值,如下面的玩具示例所示:

有谁知道它使用什么算法?

是否有任何其他(开源)包可以计算特征值?

0 投票
6 回答
7612 浏览

.net - 在 .NET 中存储稀疏矩阵的最佳方法

我们有一个存储稀疏矩阵的应用程序。该矩阵的条目主要存在于矩阵的主对角线周围。我想知道是否有任何有效的算法(或现有的库)可以有效地处理这种稀疏矩阵?优选地,这将是一个通用实现,其中每个矩阵条目可以是用户定义的类型。

针对问题/回复进行编辑:

当我说主要围绕主对角线时,我的意思是大多数矩阵的特征将是大多数条目都聚集在主对角线之外,但是靠近对角线的地方可能有零值,远离对角线的地方可能有非零值对角线。我想要对这里的“大多数”情况有效的东西。

我会用这个做什么?我需要能够有效地访问行中的所有值或列中的所有值。存储的值将是布尔值。一个例子是:

  1. 对于一行中的所有真值,foreach 列出现一个真值,将该列的所有条目设置为某个值
  2. 对于一行中的所有错误值,将条目设置为某事

这都是以前用链表完成的,但实现起来非常混乱。我希望使用稀疏矩阵可以改进算法,但事实证明很难找到“正确”类型的稀疏矩阵算法。

ps 感谢您迄今为止的回复

0 投票
9 回答
27426 浏览

.net - .NET 矩阵库

我正在为 .NET/C# 寻找一个好的(经过充分测试、功能齐全且最好具有良好界面的)矩阵库。我在这里的主要要求只是它应该是免费的(在这种情况下我并不特别关心它是否是开源的)并且最好支持稀疏矩阵运算。强制性要求是所有基本操作(例如乘法、转置、求逆)以及寻找特征值和特征向量。用于发现特征值的数值而非分析方法的实现,特别是Lanczos 算法对于稀疏矩阵,将是非常可取的,因为我将要处理的矩阵非常大(长度为 10,000 以上)并且是正方形的,而且还相当稀疏。话虽如此,我可能会要求很多,所以任何关于一个相当完整的矩阵库的建议都会很棒。

现在我知道 Python 有一个或两个用于此类任务的有用库(即NumPy / SciPy),但不幸的是,该领域似乎缺乏 .NET。

经过一番搜索,我找到了以下 .NET 库,我可能会使用它们:

但是,由于我没有使用任何这些库或其他库的任何经验(并且在任何情况下都没有足够的时间来正确检查它们),如果有人可以在这里讨论他们对各种库的建议,我将不胜感激,他们的优点/缺点,特别是关于我的用途的适用性,以及他们对它们的一般经验。

求助于 MatLab 始终是一种选择,但不是首选,因为如果我可以将矩阵数学直接与我的程序集成会更方便。

0 投票
3 回答
2584 浏览

computer-science - 存储稀疏矩阵的数据结构

我需要对稀疏矩阵做一些数学运算。我注意到使用数组可能不是利用内存的最有效方式,特别是因为矩阵可能有超过 200 行。我也考虑过使用链表,但我不确定这是否会更好。有没有适合这种情况的数据结构[方法]。

0 投票
3 回答
1237 浏览

.net - .NET 中的稀疏多维数组或矩阵库

我需要一个 .NET 应用程序中最多 4 维的稀疏矩阵。矩阵的大小(如果表示为 .NET 数组)可能会超过 400MB。

该数组可能非常稀疏,我需要能够非常快速地实例化和处置它(尽管这不是不行)。因此,我需要一个稀疏数组库,它可以从 .NET 3.5 中使用(我认为排除了使用托管 C++ 中的 BGL?),它尽可能密集,并且支持快速随机访问索引。它必须可序列化为一些可以廉价缓存的密集格式。

.NET 是否存在这样的事情(还存在)?开源软件?成熟?

TIA

安德鲁·马修斯