복붙노트

[PYTHON] 파이썬에서 MATLAB 함수 호출하기

PYTHON

파이썬에서 MATLAB 함수 호출하기

파이썬에서 MATLAB 함수를 실행할 수 있습니까? 나는 인터넷 검색 만하고, 나는 PyMat만을 찾을 수 있었다. 나쁜 점은 컴파일 된 버전이 Python2.2 만 지원하고 2.6을 사용하고 있다는 것입니다. 그래서 소스 코드를 다운로드하려고 했으므로 직접 컴파일 할 수 있습니다. 그러나 나는 그것을 컴파일 할 수 없다. VC ++ express는 컴파일하는데 필요한 기능을 갖고 있지 않은 것 같다. 누구든지 PC 용 컴파일 버전을 가지고 있습니까? 또는 PyMat을 대신 할 수 있습니까? 감사

해결법

  1. ==============================

    1.PyMat은 버려진 것처럼 보입니다.

    PyMat은 버려진 것처럼 보입니다.

    저는 여러분이 윈도우에 있다고 가정합니다. 그래서 여러분은 항상 가장 간단한 접근법을 취할 수 있고 Matlab의 COM 인터페이스를 사용할 수 있습니다 :

    >>> import win32com.client
    >>> h = win32com.client.Dispatch('matlab.application')
    >>> h.Execute ("plot([0 18], [7 23])")
    >>> h.Execute ("1+1")
    u'\nans =\n\n     2\n\n'
    

    여기에 대한 자세한 정보

  2. ==============================

    2.나는 이것이 낡은 질문이며 답을 알고있다. 하지만 나는 (Mac 용) 똑같은 것을 찾고 있었고 matlab과 다른 성숙도와 상호 작용하는 다른 방법을 가진 몇 가지 옵션이 있다는 것을 알았다. 여기 내가 찾은 것이 있습니다 :

    나는 이것이 낡은 질문이며 답을 알고있다. 하지만 나는 (Mac 용) 똑같은 것을 찾고 있었고 matlab과 다른 성숙도와 상호 작용하는 다른 방법을 가진 몇 가지 옵션이 있다는 것을 알았다. 여기 내가 찾은 것이 있습니다 :

    matlab 엔진 (libeng)을 사용하여 통신 (기본적으로 matlab과 함께 제공되는 라이브러리)을 사용하는 Matlab에 대한 저수준 인터페이스. 모듈은 libeng으로 컴파일되고 링크되어야합니다.

    http://pymat.sourceforge.net 최종 업데이트 : 2003

    pymat 개발이 다소 짧게 지속되었습니다. Windows (64 비트 포함), Linux 및 Mac (일부 변경 사항)에서 작동하는 것으로 보입니다.

    https://code.google.com/p/pymat2/ 최종 업데이트 : 2012

    libeng에 대한 컴파일 링 및 링크가 필요한 모듈로도 제공되는 고급 인터페이스. Matlab 함수를 파이썬에 노출 시켜서 재미있는 일을 할 수있게 해준다.

    mlab.plot (x, y, 'o')

    http://mlabwrap.sourceforge.net 최종 업데이트 : 2009

    mlabwrap의 재 포장 노력. 기본적으로 파이썬 모듈 (matlabpipe)로 파이프를 통해 matlab과 통신하는 mlabwrap의 'libeng'에 링크되는 C ++ 코드를 대체합니다. 이것의 가장 큰 장점은 어떤 종류의 컴파일 작업도 필요 없다는 것입니다.

    불행히도 패키지는 현재 몇 가지 버그가 있으며 Mac에서 전혀 작동하지 않는 것 같습니다. 나는 그들 중 몇 명을보고했지만 결국 포기했다. 또한, 소스 코드에 들어가야한다면 많은 수의 속임수와 꽤 못생긴 해킹을 준비해야합니다 .- 이것이 더 성숙 해지면 가장 좋은 옵션 중 하나가 될 수 있습니다.

    https://github.com/ewiger/mlab 최종 업데이트 : 2013

    새로운 패키지 (2010)는 libeng을 통해 Matlab과 상호 작용합니다. 다른 패키지와는 달리 이것은 ctypes를 통해 엔진 라이브러리를로드하므로 컴파일이 필요 없습니다. 결함이 없지만 유지 관리 중이며 (64 비트 Mac 관련) 문제는 해결하기에 충분해야합니다. (2014 년 5 월 20 일 수정 : 문제가 이미 소스에서 수정되어서 문제가 0.2.4로 해결되어야 함)

    http://pymatlab.sourceforge.net 최종 업데이트 : 2014

    여전히 적극적으로 유지 관리되는 최신 패키지입니다. 일종의 소켓을 통해 Matlab과 통신합니다. 불행히도 노출 된 기능은 약간 제한되어 있습니다. 구조체를 매개 변수로 사용하는 함수를 호출하는 방법을 이해할 수 없었습니다. 설치할 수있는 zmq, pyzmq 및 IPython이 필요합니다.

    http://arokem.github.io/python-matlab-bridge 최종 업데이트 : 2014

  3. ==============================

    3.또 다른 옵션은 Mlabwrap입니다.

    또 다른 옵션은 Mlabwrap입니다.

    그것은 numpy 배열로 잘 작동합니다. 홈페이지의 예 :

    >>> from mlabwrap import mlab; from numpy import *
    >>> xx = arange(-2*pi, 2*pi, 0.2)
    >>> mlab.surf(subtract.outer(sin(xx),cos(xx)))
    
  4. ==============================

    4.Matlab이 백그라운드에서 실행한다는 의미에서 고유 한 Python-matlab 브리지가있어서 Matlab 함수를 호출 할 때마다 시작 비용이 들지 않습니다. https://github.com/jaderberg/python-matlab-bridge

    Matlab이 백그라운드에서 실행한다는 의미에서 고유 한 Python-matlab 브리지가있어서 Matlab 함수를 호출 할 때마다 시작 비용이 들지 않습니다. https://github.com/jaderberg/python-matlab-bridge

    다운로드와 다음 코드를 사용하는 것만 큼 쉽습니다.

    from pymatbridge import Matlab
    mlab = Matlab(matlab='/Applications/MATLAB_R2011a.app/bin/matlab')
    mlab.start()
    res = mlab.run('path/to/yourfunc.m', {'arg1': 3, 'arg2': 5})
    print res['result']
    

    yourfunc.m의 내용은 다음과 같습니다.

    %% MATLAB
    function lol = yourfunc(args)
        arg1 = args.arg1;
        arg2 = args.arg2;
        lol = arg1 + arg2;
    end
    
  5. ==============================

    5.이 페이지를 참조하십시오 : 오픈 소스 MATLAB®-Python® 컴파일러

    이 페이지를 참조하십시오 : 오픈 소스 MATLAB®-Python® 컴파일러

  6. ==============================

    6.루카스 (Lukas)의 뛰어난 요약에 한 가지 더 많은 옵션을 추가하고 싶습니다.

    루카스 (Lukas)의 뛰어난 요약에 한 가지 더 많은 옵션을 추가하고 싶습니다.

    matlab_wrapper의 장점은 순수 Python 라이브러리이므로 아무 것도 컴파일 할 필요가 없다는 것입니다. GNU / Linux, Windows 및 OSX에서 작동합니다.

    https://github.com/mrkrd/matlab_wrapper

    면책 조항 : 저는 matlab_wrapper의 저자입니다.

  7. ==============================

    7.고려해야 할 2 가지 옵션 :

    고려해야 할 2 가지 옵션 :

  8. ==============================

    8.최신 버전의 matlab에서는 파이썬에서 matlab 함수를 호출 할 수있는 모듈을 제공하는 것 같습니다. 여기와 여기를 참조하십시오.

    최신 버전의 matlab에서는 파이썬에서 matlab 함수를 호출 할 수있는 모듈을 제공하는 것 같습니다. 여기와 여기를 참조하십시오.

  9. ==============================

    9.공식 matlab 엔진을 사용하여 Matlab을 설치 한 다음 외부 파일에서 파이썬 엔진을 빌드 할 수 있습니다. 아래 가이드 웹 사이트를 확인할 수 있습니다. ---이 답변의 첫 번째 의견에 대한 조언을 주셔서 감사합니다 --- 간략한 필수 단계는 다음과 같습니다 (Windows 플랫폼에서 다른 사람은 아래 URL에서 확인할 수 있음). 1. 다운로드하고 matlab을 설치, 버전 R2014 이상이어야합니다. 2. Admin 아래에서 PowerShell 창을 열고 다음을 수행합니다.

    공식 matlab 엔진을 사용하여 Matlab을 설치 한 다음 외부 파일에서 파이썬 엔진을 빌드 할 수 있습니다. 아래 가이드 웹 사이트를 확인할 수 있습니다. ---이 답변의 첫 번째 의견에 대한 조언을 주셔서 감사합니다 --- 간략한 필수 단계는 다음과 같습니다 (Windows 플랫폼에서 다른 사람은 아래 URL에서 확인할 수 있음). 1. 다운로드하고 matlab을 설치, 버전 R2014 이상이어야합니다. 2. Admin 아래에서 PowerShell 창을 열고 다음을 수행합니다.

    cd "matlabroot\extern\engines\python"
    

    3. 아래 명령 줄을 사용하여 설치하십시오.

    python setup.py install
    

    관리자는 필수적이거나 그렇지 않으면 관리자가 빌드하지 못합니다.

    자세한 내용은 아래의 공식 시작 시트를 클릭하십시오 : http://cn.mathworks.com/help/matlab/matlab_external/install-the-matlab-engine-for-python.html

  10. from https://stackoverflow.com/questions/2883189/calling-matlab-functions-from-python by cc-by-sa and MIT license