2013-10-07 97 views
1

我有一個數據文件存儲需要在我的python程序中使用的大型matlab稀疏矩陣(matlab 7.3)。我使用h5py加載這個稀疏矩陣,並發現有3個數據結構與稀疏矩陣相關聯。假設稀疏矩陣的名稱爲M,三種數據結構爲M ['data'],M ['ir'],M ['jc']。起初,我認爲M ['ir']和M ['jc']存儲非零項的行索引和列索引,但我剛剛發現在M ['jc']中存在一些大於行數稀疏矩陣。任何人都可以解釋什麼樣的信息存儲在3數據結構中?在python中加載matlab稀疏矩陣(matlab v 7.3)

回答

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示例。

+0

非常感謝您的回答。 – hanqiang