2013-10-07 5 views
1

내 파이썬 프로그램에서 사용해야 할 큰 matlab 스파 스 매트릭스 (matlab 7.3)를 저장하는 데이터 파일이 있습니다. h5py를 사용하여이 희소 행렬을로드하고 희소 행렬과 관련된 3 개의 데이터 구조가 있음을 확인합니다.python에서 matlab 스파 스 매트릭스 (matlab v 7.3)를로드

스파 스 매트릭스의 이름이 M이고 3 개의 데이터 구조가 M [ 'data'], M [ 'ir'], M [ 'jc']라고 가정합니다. 처음에는 M [ 'ir']와 M [ 'jc']가 0이 아닌 항목에 대해 행 인덱스와 열 인덱스를 저장한다고 생각했지만 M [ 'jc']의 일부 값이 행 번호보다 큼을 발견했습니다. 스파 스 매트릭스 누구든지 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에 documention을 확인합니다. matlab에도 액세스 할 수 있다고 가정하면 문서에서 링크 된 mex 예제를 확인해야합니다.

+0

답변 해 주셔서 감사합니다. – hanqiang