Matlab以Python稀疏矩阵转换,克服了零索引问题

时间:2011-07-22 18:06:42

标签: python numpy scipy sparse-matrix

我在Matlab中有一个N x N稀疏矩阵,它的单元格值由(r,c)对索引,因此r和c是唯一的id。

问题是,在将此矩阵转换为Python之后,所有索引值都会递减1.

例如:

Before                     After
(210058,10326) = 1         (210057,10325) = 1

目前,我正在采取以下措施来解决这个问题:

mat_contents = sparse.loadmat(filename)
G = mat_contents['G']
I,J = G.nonzero()
I += 1
J += 1
V = G.data
G = sparse.csr_matrix((V,(I,J)))

我也尝试在scipy.sparse.io.loadmat {matlab_compatible,mat_dtype}中使用不同的选项,但都没有用。

我正在寻找一种能给我与Matlab矩阵相同的索引的解决方案。不需要重建矩阵的解决方案将是理想的,但我也很好奇其他人是如何解决这个问题的。

1 个答案:

答案 0 :(得分:2)

谢谢大家的好建议。

我决定坚持使用Python。我在Matlab和Python之间进行大部分数据传输 现在使用文本文件。