Main Content

고급 항목

PythonMATLABimport명령 이해하기

import문은 MATLAB®에서 Python®과 기능이 동일하지 않습니다.

MATLAB에서Python모듈 불러오기

Python 코드에서는import문을 사용하여 코드를 불러오고 이 코드에 액세스할 수 있습니다. 모듈 이름과 함수 이름 앞에py.를 입력하면 MATLAB은 Python을 자동으로 불러옵니다. 다음 코드는 Python 모듈textwrap에서 함수wrap을 호출하는 방법을 보여줍니다.

Python 코드 MATLAB 코드
import textwrap pS1 = textwrap.wrap('This is a string')
S1 = py.textwrap.wrap('This is a string');

주의

MATLAB에서 다음과 같이 입력하지 마십시오.

进口pythonmodule

다음과 같이 호출하지 마십시오.

import py.*

이와 같이 호출하면 MATLAB은 같은 이름의 MATLAB 함수 대신 Python 함수를 호출합니다. 이 경우 예기치 않은 동작이 발생할 수 있습니다. 이import명령을 입력한 경우에는 반드시 다음 MATLAB 명령을 호출해야 합니다.

clear import

클래스 이름이나 함수 이름 짧게 줄이기

Python의from...import문을 사용하면 정규화된 이름을 사용하지 않고 모듈을 참조할 수 있습니다. MATLAB에서는import함수를 사용하십시오. 다음 코드는 Python 모듈textwrap에서 함수wrap을 참조하는 방법을 보여줍니다.wrap은 MATLAB 함수가 아니므로,import함수를 사용하여 호출 구문을 짧게 줄일 수 있습니다. 이 명령을 호출한 후에는 패키지 이름(py)과 모듈 이름(textwrap)을 입력할 필요가 없습니다.

Python 코드 MATLAB 코드
import textwrap pS1 = textwrap.wrap('This is a string') from textwrap import wrap pS2 = wrap('another string')
S1 = py.textwrap.wrap('This is a string'); importpy.textwrap.wrapS2 = wrap('another string');
import mymod as mm
mm = py.importlib.import_module('mymod'); % Use mm as an alias to access functionality in mymod

Python함수에 대한 도움말

Python 기능에 대한 전체 설명을 보려면 외부 자료, 특히https://www.python.org를 참조하십시오. Python 도움말 문서는 여러 다른 버전들이 있으므로 시스템의 버전에 해당하는 문서를 참조하십시오. MATLAB 도움말 문서의 예제는 대부분 Python 표준 라이브러리의 함수를 참조합니다.

타사 또는 사용자 정의 Python 모듈의 함수를 사용하려는 경우 모듈의 설치 방법과 기능에 대한 자세한 내용은 공급업체의 제품 문서를 참조하십시오.

MATLABpy.help명령은www.python.org/doc의 Python 도움말을 표시합니다. 패키지와 클래스에 대한 도움말은 광범위할 수 있으며 MATLAB 명령 창에 표시될 경우 유용하지 않을 수 있습니다.

  • 패키지

    py.help('textwrap')
  • 클래스

    py.help('textwrap.TextWrapper')
  • 클래스의 메서드

    py.help('textwrap.TextWrapper.wrap')
  • 함수

    py.help('textwrap.fill')

MATLAB이Python Error:로 시작하는 오류 메시지를 표시하는 경우 자세한 내용은 Python 도움말 문서를 참조하십시오.

참고

탭 완성 기능은 사용 가능한 Python 기능을 표시해 주지 않습니다.

MATLAB에서는 대화형 방식의 Python 도움말(즉, 입력 인수 없이py.help호출하는 방식)을 사용할 수 없습니다.

MATLAB이름과 충돌하는Python메서드 호출하기

Python 메서드 이름이 MATLAB 기본 클래스 또는 예약된 함수에 대한 봉인 메서드의 이름인 경우 MATLAB은 해당 메서드의 이름을 바꿉니다. 새 이름은 문자x로 시작하고 원래 이름의 첫 번째 문자가 대문자로 바뀐 것입니다. 예를 들어 MATLAB은 Python 메서드의 이름catxCat로 변경합니다. 예약된 메서드 목록은Methods That Modify Default Behavior항목을 참조하십시오.

메서드 이름이 MATLAB 키워드인 경우 MATLAB은matlab.lang.makeValidName을 호출하여 메서드의 이름을 변경합니다. 키워드 목록은iskeyword를 참조하십시오.

생성된 이름이 중복된 이름인 경우 MATLAB은matlab.lang.makeUniqueStrings를 사용하여 메서드의 이름을 변경합니다.

Pythoneval함수 호출하기

이 예제에서는 Pythoneval명령을 사용하여 표현식x+y를 계산하는 방법을 보여줍니다.eval에 대한 도움말을 읽습니다.

py.help('eval')
Help on built-in function eval in module __builtin__: eval(...) eval(source[, globals[, locals]]) -> value Evaluate the source in the context of globals and locals. The source may be a string representing a Python expression or a code object as returned by compile(). The globals must be a dictionary and locals can be any mapping, defaulting to the current globals and locals. If only globals is given, locals defaults to it.

표현식을 실행하려면globals네임스페이스 파라미터로서 Pythondict값을 전달하십시오.

x,y값을 위한 Pythondict변수를 만듭니다.

作品pace = py.dict(pyargs('x',1,'y',6))
作品pace = Python dict with no properties. {'y': 6.0, 'x': 1.0}

표현식을 실행합니다.

res = py.eval('x+y',workspace)
res = 7

또는 변수를 할당하지 않고 두 숫자를 더하려면globals파라미터로서 비어 있는dict값을 전달하십시오.

res = py.eval('1+6',py.dict)
res = 7

호출 가능한Python객체 실행하기

호출 가능한 Python 객체를 실행하려면feval함수를 사용하십시오. 예를 들어 Python 클래스의 인스턴스obj가 호출 가능한 경우 Python 구문obj(x1, ..., xn)을 다음 MATLAB 명령문 중 하나로 바꾸십시오.

feval(obj,x1, ..., xn)
obj(x1, ..., xn)

MATLAB에서Python연산자를 표현하는 방식

MATLAB은 다음과 같은 오버로드된 연산자를 지원합니다.

Python 연산자 기호 Python 메서드 MATLAB 메서드
+(이항) __add__,__radd__ plus,+
-(이항) __sub__,__rsub__ minus,-
*(이항) __mul__,__rmul__ mtimes,*
/ __truediv__,__rtruediv__ mrdivide,/
== __eq__ eq,==
> __gt__ gt,>
< __lt__ lt,<
!= __ne__ ne,~=
>= __ge__ ge,>=
<= __le__ le,<=
-(단항) __neg__ uminus,-a
+(단항) __pos__ uplus,+a

다음 Python 연산자는 지원되지 않습니다.

Python 연산자 기호 Python 메서드
% __mod__,__rmod__
** __pow__,__rpow__
<< __lshift__,__rlshift__
>> __rshift__,__rrshift__
& __and__,__rand__
^ __xor__,__rxor__
| __or__,__ror__
//(이항) __floordiv__,__rfloordiv__
+=(단항) __iadd__
-=(단항) __isub__
*=(단항) __imul__
/=(단항) __itruediv__
//=(단항) __ifloordiv__
%=(단항) __imod__
**=(단항) __ipow__
<<=(단항) __ilshift__
>>=(단항) __irshift__
&=(단항) __iand__
^=(단항) __ixor__
!=(단항) __ior__
~(단항) __invert__

참고 항목

|

관련 항목

외부 웹 사이트