Python的scipy.sparse.csr_matrix到Matlab的转换

问题描述

我正在尝试将代码从python转换为matlab。

m,n = np.shape(M) % M is my data
k=10;

r = k * 5
C = np.arange(n)
R = np.random.random_integers(r,size=n) - 1
D = np.random.randint(2,size=n) * 2 - 1
S = scipy.sparse.csr_matrix((D,(R,C)),shape=(r,n))

如何在matlab中编写S变量?有等效功能吗?

解决方法

sparse function可以代替csr_matrix

S = sparse(i,j,v)从三元组ijv生成稀疏矩阵S,使得S(i(k),j(k)) = v(k)。 max(i)by max(j)输出矩阵具有为length(v)个非零元素分配的空间。 如果输入ijv是向量或矩阵,则它们必须具有相同数量的元素。另外,自变量v和/或自变量ij可以是标量。

S = sparse(i,v,m,n)S的大小指定为m×n。