Python Matlab Mat 형식 데이터 읽기 작업
1. 비matlab v7.3 파일 읽기와 쓰기
import scipy.io as sio
import numpy
# matFile
matFile = 'matlabdata.mat'
datas = sio.loadmat(matFile)
# matFile
# mat matlabdata
matlabdata = datas['matlabdata']
# matFile
save_matFile = 'save_matlabdata.mat'
save_matlabdata = np.array([1,2,3,4,5])
sio.savemat(save_matFile, {'array':save_matlabdata})
2. matlab v7.3 파일 읽기
matlab가 데이터를 저장할 때'-v7.3',scipy를 사용합니다.io.loadmat 함수로 데이터를 로드하면 오류가 발생합니다.
File "/usr/local/lib/python2.7/dist-packages/scipy/io/matlab/mio.py", line 64, in mat_reader_factory
raise NotImplementedError('Please use HDF reader for matlab v7.3 files')
NotImplementedError: Please use HDF reader for matlab v7.3 files
사용 가능:
import h5py
with h5py.File('matlabdata.mat', 'r') as f:
f.keys() # matlabdata.mat
datas = h5py.File('matlabdata.mat')['matlabdata'].value
보충: [Matlab/Python] Matlab과 Python 간의 데이터 전송많은 경우, 우리는 matlab의 데이터를 저장한 다음python으로 처리해야 한다.
메서드 1(.mat 형식)
matlab의 데이터를 직접 저장합니다.mat 형식, 그리고python에서scipy를 사용합니다.io의loadmat 함수로 읽기
import scipy.io as sio
data = sio.loadmat(...)
메소드 2(.h5 형식)
저장할 때.mat 파일이 비교적 크면 matlab에서save-v7.3을 사용해야 저장할 수 있습니다.그러나 이용 방법은python에서 읽을 때 지원되지 않습니다.다음 방법으로 읽을 수 있습니다
with h5py.File("mydata.mat") as f:
data = f["mydata"][:]
데이터를 정확하게 읽을 수 있지만 수조 차원은 거꾸로 돌아간다. 즉, 원래(2,3,4,5), 읽으면 (5,4,3,2)하지만 오직.mat 데이터는save-v7.3로 저장할 때 이 방법으로 읽을 수 있습니다. 그렇지 않으면 응용 프로그램에서 읽을 수 있습니다
그래서 matlab에서 데이터를 저장할 수 있습니다.h5 형식, 통일적으로 방법2에 따라 읽기
matlab에 저장합니다.h5 형식은 다음과 같은 방법으로
h5create('data.h5','/data',[2,3,4,5]);
data = rand(2,3,4,5)
h5write('data.h5','/data',data)
그러나python으로 읽을 때 매트릭스 차원은 여전히 거꾸로이상의 개인적인 경험으로 여러분께 참고가 되었으면 좋겠습니다. 또한 많은 응원 부탁드립니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.