【发布时间】:2012-02-22 19:28:14
【问题描述】:
假设我有一个稀疏的非矩形矩阵 A:
>> A = round(rand(4,5))
A =
0 1 0 1 1
0 1 0 0 1
0 0 0 0 1
0 1 1 0 0
我想获得矩阵B,其中 A 的非零条目被它们的线性索引替换为行优先顺序:
B =
0 2 0 4 5
0 7 0 0 10
0 0 0 0 15
0 17 18 0 0
以及矩阵C,其中A 的非零条目被替换为在行优先搜索中找到它们的顺序:
C =
0 1 0 2 3
0 4 0 0 5
0 0 0 0 6
0 7 8 0 0
我正在为这个问题寻找可扩展到大型稀疏矩阵的矢量化解决方案。
【问题讨论】:
-
我觉得我错过了什么——你能不能不把
B转置一下? -
@agander3 我相信它在这种情况下有效,因为他们使用的是个矩阵。
-
我认为问题应该是“我的问题是,有没有办法以 row-first 方式有效地计算索引?”
-
建议:为可重复性设置一个种子值。
标签: matlab