我正在读一篇论文,但他们的代码是python,所以我决定将其转换为Matlab代码以适应我的工作。然而,有一小段代码我不理解。
S = scipy.sparse.csr_matrix((D, (R, C)), shape=(r, old_dim))
MSt = scipy.sparse.csr_matrix.dot(M, S.T)
有人能解释一下他们想在这里做什么吗?上面的线是什么意思?注意:变量D、R和C是从导出的数组/矩阵
C = np.arange(old_dim)
R = np.random.random_integers(r, size=old_dim) - 1
D = np.random.randint(2, size=old_dim) * 2 - 1
% also r and old_dim are dimension sizes e.g 5 or 10
我理解这部分。我只是不知道什么是稀疏的.csr_matrix(D,(R,C(,以及它在Matlab中的等价物。
D C和R代表数据、列和行。它通过传递非零元素来创建稀疏矩阵。这与MATLAB语法S = sparse(i,j,v)
非常接近
- i是行索引,对应R
- j是列索引,对应于C
- v是值,对应于D