문제

Python에서 이진 MATLAB .MAT 파일을 읽을 수 있습니까?

나는 Scipy가 .mat 파일을 읽는 것에 대한 지원을 받았다는 것을 보았지만, 나는 그것에 실패했다. Scipy 버전 0.7.0을 설치했는데 loadmat() 방법.

도움이 되었습니까?

해결책

수입이 필요합니다. import scipy.io...

import scipy.io
mat = scipy.io.loadmat('file.mat')

다른 팁

어느 것도 아니다 scipy.io.savemat, 또는 scipy.io.loadmat MATLAB 배열 버전 7.3 작업. 그러나 좋은 점은 Matlab 버전 7.3 파일이 HDF5 데이터 세트라는 것입니다. 따라서 여러 도구를 사용하여 읽을 수 있습니다. Numpy.

파이썬의 경우 필요합니다 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

먼저 .mat 파일을 다음과 같이 저장합니다.

save('test.mat', '-v7')

그 후, 파이썬에서는 평소를 사용하십시오 loadmat 기능:

import scipy.io as sio
test = sio.loadmat('test.mat')

멋진 패키지가 있습니다 mat4py 쉽게 설치할 수 있습니다

pip install mat4py

웹 사이트에서 사용하는 것은 간단합니다.

매트 파일에서 데이터를로드합니다

함수 loadmat Mat-File에 저장된 모든 변수를 Python 's 만 사용하여 간단한 Python 데이터 구조로로드합니다. dict 그리고 list 사물. 숫자 및 셀 어레이는 줄 주문된 중첩 목록으로 변환됩니다. 배열은 하나의 요소만으로 배열을 제거하기 위해 압착됩니다. 결과 데이터 구조는 다음과 호환되는 간단한 유형으로 구성됩니다. JSON 체재.

예 : 매트 파일을 파이썬 데이터 구조에로드하십시오.

from mat4py import loadmat

data = loadmat('datafile.mat')

변수 data a dict 매트 파일에 포함 된 변수와 값으로.

파이썬 데이터 구조를 매트 파일에 저장하십시오

파이썬 데이터는 함수와 함께 매트 파일에 저장할 수 있습니다. savemat. 데이터는 같은 방식으로 구성되어야합니다. loadmat, 즉, 간단한 데이터 유형으로 구성되어야합니다. dict, list, str, int, 그리고 float.

예 : 파이썬 데이터 구조를 매트 파일에 저장 :

from mat4py import savemat

savemat('datafile.mat', data)

매개 변수 data a dict 변수와 함께.

MATLAB 2014B 또는 새로운 설치가 있습니다 파이썬 용 MATLAB 엔진 사용 될수있다:

import matlab.engine
eng = matlab.engine.start_matlab()
content = eng.load("example.mat", nargout=1)

파일 읽기

import scipy.io
mat = scipy.io.loadmat(file_name)

매트 변수의 유형을 검사합니다

print(type(mat))
#OUTPUT - <class 'dict'>

그만큼 열쇠 사전 내부는 있습니다 MATLAB 변수, 그리고 가치 입니다 해당 변수에 할당 된 객체.

또한 있습니다 파이썬 용 MATLAB 엔진 Mathworks 자체에 의해. Matlab이 있다면, 이것은 고려할 가치가있을 수 있습니다 (직접 시도하지는 않았지만 Matlab 파일을 읽는 것보다 더 많은 기능이 있습니다). 그러나 다른 사용자에게 배포 할 수 있는지 모르겠습니다 (그 사람들이 matlab을 가지고 있다면 문제가되지 않을 것입니다. 그렇지 않으면 Numpy가 올바른 방법일까요?).

또한 모든 기본 사항을 직접하고 싶다면 Mathworks가 제공합니다 (링크가 변경되면 Google을 사용하십시오. matfile_format.pdf 또는 제목 MAT-FILE Format) 파일 형식의 구조에 대한 자세한 문서. 개인적으로 생각한 것만 큼 복잡하지는 않지만 분명히 이것은 가장 쉬운 방법이 아닙니다. 또한 얼마나 많은 특징에 따라 다릅니다 .mat-당신이 지원하고 싶은 파일.

기본을 읽을 수있는 "작은"(약 700 줄) 파이썬 스크립트를 작성했습니다. .mat-파일. 나는 파이썬 전문가 나 초보자가 아니며 그것을 쓰는 데 약 2 일이 걸렸습니다 (위의 링크 된 Mathworks 문서 사용). 나는 많은 새로운 것들을 배웠고 아주 재미있었습니다 (대부분). 직장에서 Python 스크립트를 썼을 때 게시 할 수 없을 까봐 두려워하지만 여기서 조언을 할 수 있습니다.

  • 먼저 문서를 읽으십시오.
  • 16 진 편집기를 사용하십시오 (예 : HXD) 그리고 참조를 살펴보십시오 .mat-당신은 구문 분석하고 싶다.
  • 바이트를 .txt 파일에 저장하고 각 줄에 주석을 달아 각 바이트의 의미를 파악하십시오.
  • 클래스를 사용하여 각 데이터 요소를 저장합니다 (예 : miCOMPRESSED, miMATRIX, mxDOUBLE, 또는 miINT32)
  • 그만큼 .mat-files의 구조는 트리 데이터 구조에 데이터 요소를 저장하는 데 최적입니다. 각 노드에는 하나의 클래스와 서브 노드가 있습니다
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top