답변:
수입이 필요합니다 import scipy.io
...
import scipy.io
mat = scipy.io.loadmat('file.mat')
save('myfile.mat','-v7')
어느 scipy.io.savemat
없으며, scipy.io.loadmat
MATLAB 배열 버전 7.3에 대한 작업. 그러나 MATLAB 버전 7.3 파일은 hdf5 데이터 세트라는 것이 좋습니다. 따라서 NumPy를 포함한 여러 도구를 사용하여 읽을 수 있습니다 .
Python의 경우 h5py
시스템에 HDF5 가 필요한 확장 이 필요합니다 .
import numpy as np
import h5py
f = h5py.File('somefile.mat','r')
data = f.get('data/variable1')
data = np.array(data) # For converting to a NumPy array
save
(적어도 Matlab R2014b에서) 위의 기술로는 읽을 수없는 파일이 생성됩니다. '-v7.3'플래그를 사용하면 숫자 데이터를 잘 읽을 수 있습니다.
save('filename', '-v7.3', 'var1');
다음을 mat4py
사용하여 쉽게 설치할 수 있는 멋진 패키지 가 있습니다.
pip install mat4py
웹 사이트에서 사용하는 것이 간단합니다.
MAT 파일에서 데이터로드
이 함수 loadmat
는 MAT 파일에 저장된 모든 변수를 Python dict
과 list
객체 만 사용하여 간단한 Python 데이터 구조로로드 합니다. 숫자 형 배열과 셀형 배열은 행 순서로 중첩 된 목록으로 변환됩니다. 하나의 요소 만있는 배열을 제거하기 위해 배열을 압착합니다. 결과 데이터 구조는 JSON 과 호환되는 간단한 유형으로 구성됩니다. 형식 됩니다.
예 : Python 데이터 구조에 MAT 파일을로드하십시오.
from mat4py import loadmat
data = loadmat('datafile.mat')
변수 data
는 dict
MAT 파일에 포함 된 변수와 값 이있는 a 입니다.
Python 데이터 구조를 MAT 파일에 저장
Python 데이터는 함수를 사용하여 MAT 파일에 저장할 수 있습니다 savemat
. 데이터와 동일한 방식으로 구성되어야한다 loadmat
, 그것이 단순 데이터 타입들로 구성되어야한다, 즉 같은 dict
, list
, str
, int
, 및float
.
예 : Python 데이터 구조를 MAT 파일에 저장하십시오.
from mat4py import savemat
savemat('datafile.mat', data)
변수 data
는 dict
변수와 함께 있어야합니다.
mat4py/cmd.py my.mat
쓰기 my.json
, 1 긴 줄.)
mat4py.loadmat.ParseError: Can only read from Matlab level 5 MAT-files
MATLAB 2014b 이상을 설치하면 Python 용 MATLAB 엔진을 사용할 수 있습니다.
import matlab.engine
eng = matlab.engine.start_matlab()
content = eng.load("example.mat", nargout=1)
파이썬 용 MATLAB 엔진 도 있습니다MathWorks 자체의 있습니다. MATLAB이 있다면 고려해 볼 가치가 있습니다 (내가 직접 시도하지는 않았지만 MATLAB 파일을 읽는 것보다 훨씬 더 많은 기능을 가지고 있습니다). 그러나 다른 사용자에게 배포 할 수 있는지 여부는 알 수 없습니다 (MATLAB이 있으면 문제가되지 않습니다. 그렇지 않으면 NumPy가 올바른 방법 일 수 있습니다).
또한 모든 기본 사항을 직접 수행하려는 경우 MathWorks는 파일 형식의 구조에 대한 자세한 문서를 제공합니다 (링크가 변경되면 Google에 matfile_format.pdf
제목이나 제목을 입력하십시오 MAT-FILE Format
). 개인적으로 생각하는 것만 큼 복잡하지는 않지만 분명히 가장 쉬운 방법은 아닙니다. 그것은 또한 얼마나 많은 기능에 의존.mat
지원하려는 -file의 .
기본 파일을 읽을 수있는 "작은"(약 700 줄) Python 스크립트를 작성했습니다 .mat
. 저는 파이썬 전문가도 초보자도 아니며, 위에 링크 된 MathWorks 문서를 사용하여 작성하는 데 약 이틀이 걸렸습니다. 나는 많은 새로운 것들을 배웠고 꽤 재미있었습니다. 직장에서 Python 스크립트를 작성 했으므로 게시 할 수 없습니다 ... 그러나 여기에 조언을 해줄 수 있습니다.
.mat
를 사용하여 구문 분석 할 참조 파일을 찾으십시오 .miCOMPRESSED
, miMATRIX
, mxDOUBLE
, 또는 miINT32
).mat
-files '구조는 트리 데이터 구조의 데이터 요소를 저장하기에 적합하다; 각 노드에는 하나의 클래스와 하위 노드가 있습니다