tft每日頭條

 > 生活

 > matlab讀取python程序

matlab讀取python程序

生活 更新时间:2024-12-28 06:21:38

matlab讀取python程序(如何使用Python調用MATLAB函數)1

R2017b之前的版本支持py2.7-py3.5,R2017b以及之後可支持py3.6

安裝python關于MATLAB的擴展包

切換目錄至 ~MATLAB\R2018b\extern\engines\python,執行下面命令

其中~MATLAB為MATLAB的安裝目錄

#非默認目錄下安裝,并把安裝信息存至D:\MatlabForPython\files.txt python setup.py build --build-base="D:\MatlabForPython" install --record D:\MatlabForPython\files.txt #默認目錄下安裝 python setup.py install

準備工作

matlab文件 getFromMat.m

function a = getFromMat(x) a=[1 2 3; 4 5 6] x

導入包,并啟動MATLAB引擎

>>> import matlab.engine >>> eng=matlab.engine.start_matlab()

python獲取MATLAB的執行結果

需要将得到的值進行轉化,才能得到array類型的數據

>>> mat=eng.getFromMat(1) a = 1 2 3 4 5 6 x = int64 1 >>> np.array(mat._data).reshape(mat.size[::-1]).T array([[1., 2., 3.], [4., 5., 6.]])

将python數據傳入MATLAB函數

>>> aa=np.arange(9).reshape(3,3) >>> bb=matlab.int8(aa.tolist()) >>> data=eng.triarea(bb) a = 1 2 3 4 5 6 x = 3x3 int8 矩陣 0 1 2 3 4 5 6 7 8

完整代碼

import matlab.engine import numpy as np eng=matlab.engine.start_matlab() #得到matlab執行結果,并轉化為array數據 mat=eng.getFromMat(1) pymat=np.array(mat._data).reshape(mat.size[::-1]).T #将array數據轉化為matlab.int,并傳入matlab引擎 aa=np.arange(9).reshape(3,3) bb=matlab.int8(aa.tolist()) data=eng.triarea(bb) #關閉matlab引擎 eng.quit()

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved