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は推奨されません.
具体的には、コードを参照してください.
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)