Pythonはmatlab関数を呼び出します


pythonでmatlabを起動するには:
engine = matlab.engine.start_matlab()
 
入力した変数Xがテーブル形式のデータ(n*d)、すなわちndarray形式の場合は、変換して入力する必要があります.
data_list= matlab.double(X.tolist())
 
肝心なのは以上の2点です.
注意:pathonバージョンが3.7または3.8の場合、matlabエンジンのバージョンが適切かどうか(Matlab 2017 bに付属するエンジンが適切ではない)に注意するには、より高度なMatlabバージョンが必要か、pythonを3.5または3.6下げてもよい.
エンジンファイルsetupは推奨されません.
具体的には、コードを参照してください.
import matlab
import matlab.engine
import pandas as pd
import numpy as np
from sklearn import datasets
X,y = datasets.make_blobs(n_samples=300, n_features=2,centers=2,cluster_std=[2.0,2.0],random_state=123) #python        
fea = matlab.double(X.tolist())  ##      :fea             ,     300  * 2    。
engine = matlab.engine.start_matlab()  #  matlab  

sampRank = engine.Diaoyong(fea,20)  ##    :sampRank malab  Diaoyong(fea,Num)    。sampRank     。
print(sampRank)
print(type(sampRank))  ##

sRank = np.array(sampRank)  #        ndarray  (       )
print(type(sRank))  ##

a = np.reshape(sRank,(1,len(sRank)))[0] #   1: sRank       (sRank    )
b = np.hstack(sRank)  #  2: sRank   (sRank    )
print("a=",a)
print("b=",b)
print(sRank)
# print(fea)