Main Content

이 페이지의 내용은 이전 릴리스에 관한 것입니다. 해당 영문 페이지는 최신 릴리스에서 제거되었습니다.

MATLAB에서 Python 호출

이 예제에서는 MATLAB® 내에서 Python® 언어의 함수와 모듈을 사용하는 방법을 보여줍니다. 이 예제는 Python 표준 라이브러리에서 텍스트 서식 지정 모듈을 호출합니다.

MATLAB은 종종 CPython이라고 부르는 Python의 참조 구현 버전 2.7, 3.6 및 3.7을 지원합니다. Mac이나 Linux 플랫폼을 사용 중이면 이미 Python이 설치되어 있습니다. Windows를 사용 중인 경우 Python을 아직 설치하지 않았다면 https://www.python.org/download에서 Python 배포판을 다운로드하여 설치할 수 있습니다. 자세한 내용은 지원되는 Python 구현 설치하기 항목을 참조하십시오.

Python 함수를 호출하여 단락에서 텍스트 줄 바꿈

MATLAB은 Python 표준 라이브러리 함수와 동등한 함수를 많이 갖추고 있지만 모든 함수를 갖추고 있지는 않습니다. 예를 들어, textwrap은 캐리지 리턴과 그 밖의 다른 편의 함수를 사용하여 텍스트 블록의 형식을 지정하는 모듈입니다. MATLAB도 textwrap 함수를 제공하지만 MATLAB의 이 함수는 UI 컨트롤 안에 맞게 텍스트 줄 바꿈만 합니다.

조작할 텍스트 단락을 생성합니다.

T = 'MATLAB(R) is a high-level language and interactive environment for numerical computation, visualization, and programming. Using MATLAB, you can analyze data, develop algorithms, and create models and applications. The language, tools, and built-in math functions enable you to explore multiple approaches and reach a solution faster than with spreadsheets or traditional programming languages, such as C/C++ or Java(TM).';

Python 문자열을 MATLAB 문자열로 변환

함수 이름 앞에 문자 py.를 입력하여 textwrap.wrap 함수를 호출합니다. import textwrap을 입력하지 마십시오.

wrapped = py.textwrap.wrap(T);
whos wrapped
  Name         Size            Bytes  Class      Attributes

  wrapped      1x7                 8  py.list              

wrapped는 Python 문자열 목록입니다. MATLAB은 이 유형의 목록을 py.list로 표시합니다.

py.list를 Python 문자열로 구성된 셀형 배열로 변환합니다.

wrapped = cell(wrapped);
whos wrapped
  Name         Size            Bytes  Class    Attributes

  wrapped      1x7               840  cell               

wrapped는 MATLAB 셀형 배열이지만 각 셀 요소는 Python 문자열입니다.

wrapped{1}
ans = 

  Python str with no properties.

    MATLAB(R) is a high-level language and interactive environment for

char 함수를 사용하여 Python 문자열을 MATLAB 문자열로 변환합니다.

wrapped = cellfun(@char, wrapped, 'UniformOutput', false);
wrapped{1}
ans =

    'MATLAB(R) is a high-level language and interactive environment for'

이제 각 셀 요소는 MATLAB 문자열입니다.

단락 사용자 지정

키워드 인수를 사용하여 단락의 출력값을 사용자 지정합니다.

위 코드에서는 wrap 편의 함수를 사용하고 있지만 해당 모듈은 py.textwap.TextWrapper 기능을 통해 더 많은 옵션을 제공합니다. 옵션을 사용하려면 https://docs.python.org/2/library/textwrap.html#textwrap.TextWrapper에 설명된 키워드 인수와 함께 py.textwap.TextWrapper를 호출하십시오.

MATLAB pyargs 함수를 쉼표로 구분된 이름/값 쌍의 목록과 함께 사용하여 키워드 인수를 생성합니다. width는 텍스트의 형식을 30자 너비로 지정합니다. initial_indent 키워드와 subsequent_indent 키워드는 각 라인을 MATLAB에서 사용하는 주석 문자인 %로 시작하게 만듭니다.

tw = py.textwrap.TextWrapper(pyargs(...
    'initial_indent', '% ', ...
    'subsequent_indent', '% ', ...
    'width', int32(30)));
wrapped = wrap(tw,T);

MATLAB 인수로 변환하고 결과를 표시합니다.

wrapped = cellfun(@char, cell(wrapped), 'UniformOutput', false);
fprintf('%s\n', wrapped{:})
% MATLAB(R) is a high-level
% language and interactive
% environment for numerical
% computation, visualization,
% and programming. Using
% MATLAB, you can analyze
% data, develop algorithms,
% and create models and
% applications. The language,
% tools, and built-in math
% functions enable you to
% explore multiple approaches
% and reach a solution faster
% than with spreadsheets or
% traditional programming
% languages, such as C/C++ or
% Java(TM).

자세히 알아보기

Python은 MATLAB 사용자가 사용할 수 있는 또 다른 라이브러리 소스라는 점만 알고 있으면 충분합니다. 튜플(Tuple), 사전(Dictionary) 등의 Python 데이터형을 포함하여 MATLAB과 Python 간에 데이터를 이동하는 방법에 대한 자세한 내용은 Python Libraries in MATLAB 항목을 참조하십시오.