본문 바로가기
인공지능

[프로그램 언어] MATLAB에서 Python 함께 사용하기

by 오션지키미 2024. 4. 17.
320x100
반응형
SMALL

MATLAB®과 Python® 함께 사용하기

https://kr.mathworks.com/content/dam/mathworks/fact-sheet/en-us-ko-using-matlab-with-python-cheat-sheet.pdf?s_v1=53911&elqem=4292411_EM_KR_DIR_24-04_MOE-CG#page=1.00&gsr=0

자세한 내용을 확인할 수 있는 MATLAB 문서의 관련 섹션으로 연결되는 링크를 제공

MATLAB에서 Python 호출Python에서 MATLAB 호출Python 패키지 만들기
Python 인터프리터의 설정 및 상태에 액세스:
>> pe = pyenv
사용할 버전 지정:
>> pe = pyenv("Version",'3.7')
Python 모듈 및 함수 호출:
py.module _ name.function _ name
>> py.math.sqrt(42)
키워드 인수 전달
키워드 인수를 전달하려면 pyargs 사용
>>> foo(5,bar=42)
>> py.foo(5,pyargs('bar',42))
모듈 다시 불러오기
업데이트 후에 모듈 다시 불러오기:
>> py.importlib.reload(module)
MATLAB Engine API for Python 설치 ≥
OS 명령 창에서 setup.py 실행
$ cd [matlabroot]/extern/engines/
python
$ python setup.py install
MATLAB 함수 호출
모듈 가져오기 및 엔진 시작
>>> import matlab.engine
>>> eng =
matlab.engine.start _ matlab()
엔진을 통해 함수 호출
>>> x = eng.sqrt(42.0)
여러 출력값 캡처
>>> x = eng.gcd(42.0,8.0,nargout=3)
엔진 중지
>>> eng.exit()
MATLAB 함수 패키징 ≥
Library Compiler 앱을 사용하여
MATLAB 함수에 대한 Python 패키지
생성

Python 패키지에서 MATLAB 함수 호출

>>> import PackageName
>>> pkg =
PackageName.initialize()
>>> result = pkg.foo()
패키지 닫기
>>> pkg.terminate()
데이터형 변환데이터 사이언스 라이브러리

Apache Parquet을 사용한 테이블 형식 데이터의 효
율적인 전송
MATLAB에서:
>> tbl = parquetread(fname)
>> parquetwrite(tbl,fname)
Python에서:
>>> df = pandas.read _ parquet(fname)
>>> pandas.Dataframe.to _ parquet(df)
딥러닝 ≥
TensorFlow-Keras, ONNX 등에 대한 가져오기 툴
을 사용하여 MATLAB에서 프레임워크에 액세스
>> net = importKerasNetwork(model)

https://www.mathworks.com/solutions/deep-learning/models.html

Deep Learning Models

Explore and download deep learning pretrained models that you can use directly with MATLAB.

www.mathworks.com

https://github.com/matlab-deep-learning/MATLAB-Deep-Learning-Model-Hub

GitHub - matlab-deep-learning/MATLAB-Deep-Learning-Model-Hub: Discover pretrained models for deep learning in MATLAB

Discover pretrained models for deep learning in MATLAB - matlab-deep-learning/MATLAB-Deep-Learning-Model-Hub

github.com

 

728x90