Python에서 MATLAB 함수 호출하기
MATLAB® 경로에서 MATLAB 함수를 호출하려면 Python®용 MATLAB Engine API를 사용하십시오.
MATLAB 함수가 경로에 없으면 현재 폴더에서 이 함수를 호출할 수 있습니다. 예를 들어 폴더 myFolder
에서 MATLAB 함수 myFnc
를 호출하려면 다음을 입력하십시오.
import matlab.engine
eng = matlab.engine.start_matlab()
eng.cd(r'myFolder', nargout=0)
eng.myFnc()
myFnc
가 폴더 C:/work/myfiles
에 있는 경우 이 폴더를 Python 경로에 추가할 수 있습니다.
eng.addpath("C:/work/myfiles")
모든 하위 폴더의 경로를 추가하려면 다음을 입력하십시오.
s = eng.genpath('C:/work/myfiles')
eng.addpath(s, nargout=0)
MATLAB 함수에서 출력 인수 반환하기
어떤 MATLAB 함수든 직접 호출하고 그 결과를 Python으로 반환할 수 있습니다. 예를 들어, 어떤 숫자가 소수인지 여부를 결정하려면 엔진을 사용해 isprime
함수를 호출하십시오.
import matlab.engine
eng = matlab.engine.start_matlab()
tf = eng.isprime(37)
print(tf)
True
MATLAB 함수에서 여러 개의 출력 인수 반환하기
엔진으로 함수를 호출하면 엔진은 기본적으로 단일 출력 인수를 반환합니다. 함수가 여러 인수를 반환할 수 있다는 사실을 알고 있다면 nargout
인수를 사용하여 출력 인수의 개수를 지정하십시오.
두 숫자의 최대공약수를 결정하려면 gcd
함수를 사용하십시오. gcd
에서 세 개의 출력 인수를 반환하도록 nargout
을 설정하십시오.
import matlab.engine
eng = matlab.engine.start_matlab()
t = eng.gcd(100.0,80.0,nargout=3)
print(t)
(20.0, 1.0, -1.0)
출력 인수를 반환하지 않는 MATLAB 함수
일부 MATLAB 함수는 출력 인수를 반환하지 않습니다. 함수에서 인수를 반환하지 않을 경우 nargout
을 0으로 설정하십시오.
Python에서 시스템 웹 브라우저에 MathWorks® 문서를 엽니다.
import matlab.engine
eng = matlab.engine.start_matlab()
eng.doc(nargout=0)
MATLAB doc
함수는 브라우저를 열지만 출력 인수를 반환하지는 않습니다. nargout=0
을 지정하지 않으면 엔진이 오류를 발생시킵니다.
함수 실행 중지하기
MATLAB 함수의 실행을 중지하려면 Ctrl+C를 누르십시오. 제어가 Python으로 돌아옵니다.
MATLAB 연산자에 대한 함수 이름 사용하기
대응하는 함수를 호출하여 Python에 MATLAB 연산자를 사용할 수 있습니다. 연산자 및 연결된 함수 이름의 목록은 MATLAB 연산자 및 관련 함수 항목을 참조하십시오. 예를 들어, 두 개의 숫자를 추가하려면 +
연산자 대신 plus
함수를 사용하십시오.
import matlab.engine
eng = matlab.engine.start_matlab()
a = 2
b = 3
eng.plus(a,b)
참고 항목
matlab.engine.MatlabEngine
| matlab.engine.FutureResult