2016-10-13 7 views
0

Simulink 모드를 실행하는 Matlab의 스크립트를 Python에서 실행하고 Power.mat로 변수를 저장하고 Python에서이 변수를 읽으려고합니다. Windows에서 Python 2.7을 사용하고 있습니다.Python에서 .mat 파일로드

나는 파일을 읽을 수있는 도서관 hdf5storage을 사용하려고했습니다

import hdf5storage 
x=hdf5storage.loadmat('Power.mat','r') 

하지만 오류가 부착 된 얻을. error

어떤 것이 문제 일 수 있습니까? 나는 또한 h5py 라이브러리를 시도했지만 동일한 오류가 발생합니다. Matlab에서 문제없이 열면 .mt 파일이 손상되지 않은 것 같습니다.

감사합니다.

+0

을이 관련인가? http://stackoverflow.com/questions/31287744/corrupt-files-when-creating-hdf5-files-without-closing-them-h5py – cdarke

+0

'x = hdf5storage.loadmat ('Power.mat')'가 작동해야합니다. 그것을 테스트하는 데 필요한 패키지를 다운로드하는 데 영원히 걸립니다 :) –

+1

'Power.mat'을 7.3 MAT 파일로 저장 했습니까? 이전 버전은 HDF5가 아닙니다. MATLAB에서 :'type ('Power.mat')'은 MAT 파일 버전을 알려줍니다. 'save ('Power.mat', '-v7.3')'을 사용하여 버전을 지정하십시오. – smn

답변

2

scipy.io를 사용하여 Python과 Matlab간에 데이터를 교환 할 수 있습니다. 이를 위해 savemat 및 loadmat라는 함수가 있습니다. 이 같은

뭔가 작업을해야합니다 :

참고로
import scipy.io 
mat = scipy.io.loadmat('Power.mat') 

, http://docs.scipy.org/doc/scipy/reference/generated/scipy.io.loadmat.html

+1

네 가지 '.mat' 파일 형식이 있습니다. 처음 세 개의 'v4', 'v6'및 'v7'은 독점적 인 바이너리 형식입니다. 그것들은'scipy'가 열 수있는 것들입니다. 마지막 v7.3은 전문화 된 hdf5 파일입니다. 그것이'hdf5storage'가 열 수있는 것입니다. 기술적으로는 hdf5 파일을 처리 할 수있는 모든 것을 열 수 있지만 hdf5storage는 MATLAB 관련 비트를 정상적으로 처리 할 수있는 도구가 있습니다. 그렇지 않으면 당신은 꽤 못생긴 (그러나 여전히 궁극적으로 쓸만한) 결과를 얻는다. – TheBlackCat

0

이 코드보십시오 :

import h5py 
Data = h5py.File('File.mat')