주요 콘텐츠

pyrunfile

MATLAB에서 Python 스크립트 파일 실행

R2021b 이후

    설명

    pyrunfile(file)file의 Python® 명령문을 실행합니다.

    pyrun 함수와 달리, pyrunfile 함수를 사용하여 Python 작업 공간에 만든 변수는 영속 변수가 아닙니다. 이후에 pyrunfile을 호출할 경우 이러한 변수에 액세스할 수 없습니다.

    예제

    pyrunfile(file input)은 입력 인수와 함께 Python 명령문을 실행합니다. Python 스크립트는 명령줄 인수를 문자열로 읽습니다.

    예제

    outvars = pyrunfile(file,outputs)lhs 변수를 할당합니다. 또한 이 함수를 사용하여 사용자는 지정된 Python 코드에 대한 입력으로 전달할 MATLAB® 작업 공간 변수를 선택할 수 있으며, 스크립트에서 처리된 모든 Python 변수 또는 그중에서 사용자가 선택한 부분집합을 MATLAB에 다시 반환합니다.

    예제

    outvars = pyrunfile(file,outputs,pyName=pyValue)는 하나 이상의 이름-값 쌍의 인수를 사용하여 코드를 실행합니다.

    예제

    예제

    모두 축소

    hello.py 파일의 Python 명령문을 호출합니다.

    다음 명령문에서 Python 스크립트 hello.py를 만듭니다.

    greeting = "hello"
    print(greeting)

    MATLAB 명령줄에 출력값을 표시합니다.

    pyrunfile("hello.py")
    hello

    Python 스크립트를 만들고 문자열을 전달합니다.

    다음 명령문에서 greeting.py를 만듭니다.

    import sys
    greeting = sys.argv[1]
    print(greeting)

    스크립트에 문자열을 전달하고 출력값을 표시합니다.

    pyrunfile("greeting.py 'hello world'")
    hello world

    MATLAB에서 Python 스크립트를 실행하고 스크립트에 의해 생성된 변수를 MATLAB에 전달합니다.

    다음 명령문에서 Python 스크립트 makeList.py를 만듭니다.

    l = ['A', 'new', 'list']

    리스트를 만드는 스크립트를 실행하고 해당 리스트를 변수 data로 MATLAB에 반환합니다.

    data = pyrunfile("makeList.py", "l")
    data = 
      Python list with no properties.
    
        ['A', 'new', 'list']
    

    입력 인수를 받는 Python 스크립트를 호출합니다.

    다음 명령문에서 Python 스크립트 addac.py를 만듭니다. 이 스크립트는 입력 인수 xy를 받고 변수 z를 반환합니다.

    def add(a,c):
        b = a+c
        return b
    
    z = add(x,y)

    xy에 대한 값을 전달합니다. 변수 z를 MATLAB 변수 res로 반환합니다.

    res = pyrunfile("addac.py","z",x=3,y=2)
    res = 5

    입력 인수

    모두 축소

    Python 표현식 또는 명령문을 포함하는 Python 파일로, string형 스칼라 또는 문자형 벡터로 지정됩니다.

    예: "test.py"

    명령줄 입력 인수와 함께 Python 표현식 또는 명령문을 포함하는 Python 파일로, string형 스칼라 또는 문자형 벡터로 지정됩니다.

    예: "test.py var"

    하나 이상의 Python 변수 이름으로, string형 배열로 지정됩니다. 변수는 지역 변수일 수도 있고 전역 변수일 수도 있습니다. MATLAB은 code의 출력값을 outputs로 명명된 각 변수에 대입하며 값을 outvars에 반환합니다.

    예: "L"

    Python code에 전달할 하나 이상의 입력 인수 이름과 값으로, 키워드와 값 인수로 지정됩니다. pyName은 변수의 Python 이름이며, pyValue는 대입된 값입니다. pyName1=pyValue1,...,pyNameN=pyValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

    예: x=3

    출력 인수

    모두 축소

    하나 이상의 MATLAB 작업 공간 변수 이름으로, code로부터 유효한 유형으로 반환됩니다. outvars의 개수는 outvars 인수의 개수와 일치합니다. Python 데이터에 액세스하려면 outvars를 사용하여 Python 객체를 MATLAB에 명시적으로 반환해야 합니다.

    제한 사항

    • pyrun 또는 pyrunfile을 사용하여 정의된 Python 클래스의 인스턴스를 MATLAB으로 반환하면 정의된 클래스를 수정할 수 없습니다. 클래스 정의를 변경해야 하는 경우 다음과 같이 인터프리터 세션을 재시작하십시오.

      terminate(pyenv)
      pyenv(ExecutionMode="OutOfProcess")

      또는 "InProcess" 모드로 MATLAB을 재시작하십시오.

      pyrun 함수와 pyrunfile 함수는 메서드를 통해 다른 지역 변수에 의해 초기화되는 지역 변수를 사용하는 클래스를 지원하지 않습니다. 이렇게 사용하려면 py. 접두사를 사용하여 모듈을 만들어 액세스하십시오.

    • Python 유형 힌트에 기반한 유형 변환은 pyrun, pyrunfile 또는 네이티브 Python 코드가 입력값으로 제공되는 Python 코드 실행 작업에서 지원되지 않습니다.

    버전 내역

    R2021b에 개발됨