前言:正如matlab指南所说,通常,当一个人想要在matlab中有效地填充一个稀疏矩阵时,他应该在矩阵中创建一个索引向量和他想要分配的值向量,然后将所有分配集中到一个原子操作,从而让matlab提前“准备”矩阵,优化赋值速度。一个简单的例子:
A=sparse([]);
inds=some_index_generating_method();
vals=some_value_generating_method();
A(inds)=vals;
我的问题:inds
在包含重叠索引的情况下我能做什么,即inds=[4 17 8 17 9]
17 重复两次。在这种情况下,我想要发生的是矩阵将被分配添加映射到同一索引的所有值,即对于前面的示例
A(17)=vals(2)+vals(4) %as inds(2)==inds(4)
是否有任何直接且最重要的是快速的方法来实现这一目标?我无法以“更智能”的方式生成索引和值。