본문 바로가기
파이썬/파이썬기본문법

파이썬 SciPy Matlab 배열

by flycoding 2024. 2. 5.
반응형

파이썬 SciPy Matlab 배열

우리는 NumPy가 Python의 읽기 쉬운 형식으로 데이터를 유지하는 방법을 제공한다는 것을 알고 있다. 그러나 SciPy는 Matlab과의 상호 운용성도 제공한다.

SciPy는 Matlab 배열에서 작업할 수 있는 기능이 있는 모듈 scipy.io 을 제공한다.

 

파이선 SciPy Matlab 형식에서 데이터 추출 - savemat()

savemat() 함수를 통해 데이터를 Matlab 형식으로 내보낼 수 있다.

메소드는 다음 매개 변수를 사용한다:
filename - 데이터를 저장하기 위한 파일 이름이다.
mdict - 데이터를 포함하는 사전.
do_compression - 결과를 압축할지 여부를 지정하는 부울 값이다. 기본값은 False이다.

다음 배열을 변수 이름 "vc"로 매트 파일로 내보낸다:

from scipy import io
import numpy as np

arr = np.arange(10)

io.savemat('arr.mat', {"vec": arr})

참고: 위의 예제는 "arr.mat" 파일 이름을 컴퓨터에 저장한다.
파일을 열려면 아래 "Matlab Format에서 데이터 가져오기" 예제를 확인한다:

 

파이선 SciPy Matlab 형식에서 데이터 가져오기 - loadmat()

loadmat() 함수를 사용하면 Matlab 파일에서 데이터를 가져올 수 있다.

함수에는 다음과 같은 한 가지 필수 매개 변수가 사용된다:
filename - 저장된 데이터의 파일 이름이다.
키가 변수 이름이고 해당 값이 변수 값인 구조화된 배열을 반환한다.

다음 매트 파일에서 어레이를 가져온다.

from scipy import io
import numpy as np

arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9,])

# Export:
io.savemat('arr.mat', {"vec": arr})

# Import:
mydata = io.loadmat('arr.mat')

print(mydata)

위의 코드를 실행하면 아래 그림과 같다.

파이썬 SciPy Matlab loadmat() 활용 예제

 

변수 이름 "vc"를 사용하여 매트랩 데이터의 배열만 표시한다:

from scipy import io
import numpy as np

arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9,])

#Export:
io.savemat('arr.mat', {"vec": arr})

#Import:
mydata = io.loadmat('arr.mat')

print(mydata['vec'])

위의 코드를 실행하면 아래 그림과 같다.

파이썬 SciPy Matlab loadmat() 활용 예제

 

참고: 배열은 원래 1D였지만 추출 시 1차원이 증가했음을 알 수 있다.
이를 해결하기 위해 추가 인수 squeeze_me=True를 전달할 수 있다:

from scipy import io
import numpy as np

arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9,])

#Export:
io.savemat('arr.mat', {"vec": arr})

#Import:
mydata = io.loadmat('arr.mat', squeeze_me=True)

print(mydata['vec'])

위의 코드를 실행하면 아래 그림과 같다.

파이썬 SciPy Matlab loadmat( squeeze_me=True) 활용 예제

 

이번 글에서는 파이썬 SciPy 모듈에서 Matlab 배열에서 데이터를 추출하거나 가져오기 위해 savemat() 메소드, loadmat() 메소드 등을 활용하는 실습을 하였다.

꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.

모두 화이팅입니다.!!!

 

출처 : 이 글의 출처는 w3schools사이트를 참고하였으며 필자가 추가하여 정리한 글입니다.

반응형

댓글