我有一个存储大型matlab稀疏矩阵(matlab 7.3)的数据文件,需要在我的python程序中使用。我使用h5py加载这个稀疏矩阵,发现有3个数据结构与稀疏矩阵相关联。
假设稀疏矩阵的名称是M,3个数据结构是M ['data'],M ['ir'],M ['jc']。最初我认为M ['ir']和M ['jc']存储非零项的行索引和列索引,但我刚刚发现M ['jc']中存在一些大于行号的值。稀疏矩阵。任何人都可以解释3种数据结构中存储的信息类型吗?
答案 0 :(得分:2)
ir
是非空行的行索引。对于列索引,事情稍微复杂一些,但在Mathworks mex-Function文档中有详细记载。
从http://www.mathworks.de/de/help/matlab/apiref/mxsetir.html粘贴:
If the jth column of the sparse mxArray has any nonzero elements:
jc[j] is the index in ir, pr, and pi (if it exists) of the first nonzero element in the jth column.
jc[j+1]-1 is the index of the last nonzero element in the jth column.
For the jth column of the sparse matrix, jc[j] is the total number of nonzero elements in all preceding columns.
The number of nonzero elements in the jth column of the sparse mxArray is:
jc[j+1] - jc[j];
另请查看mxSetIr
上的文档。
假设您也可以访问matlab,那么您应该查看从文档链接的mex示例。