Matlab 中 coo_matrix 的等价物是什么?

What is the equivalent of coo_matrix in Matlab?

我正在尝试将以下代码行从 Python 转换为 MATLAB。 VIdJ 的大小为 (6400,),在 MATLAB 中是 1 -by- 6400 行向量。 pts 尺寸为 242。

我的Python代码

A = coo_matrix((V, (Id, J)), shape=(pts.size, pts.size)).tocsr()
A = A.tobsr(blocksize=(2, 2))

我把第一行翻译成MATLAB

A = sparse(V,Id,J,242,242);

但是,我得到了错误

Error using sparse
Index into matrix must be an integer.

如何将此代码转换为 MATLAB?

MATLAB sparse函数有几种形式:

S = sparse(A)
S = sparse(m,n)
S = sparse(i,j,v)
S = sparse(i,j,v,m,n)
S = sparse(i,j,v,m,n,nz)

您最有可能寻找的表格是第四个表格:S = sparse(i,j,v,m,n),并希望将其称为(使用您的用例)为:

A = sparse(Id, J, V, 242, 242);

我认为你的错误是 MATLAB 首先需要 I 和 J 索引,然后是值,而你将值作为第一个参数。