この例では,python®でで患者データを吃烟者と非吃烟者のリストににに,MATLAB®をのます
エンジンを驾驶し,一般の患者データをmatlabテーブルに読み取ります.matlabでは,100人の异なる患者をを,サンプルのコンマ区切りファイル患者.DAT.
を提供します。
导入matlab。Engine eng = matlab.engine.start_matlab() eng。eval (T = readtable (patients.dat);“,nargout = 0)
matlab关节可阅读
エンジンは,matlab,matlabません。ただし,matlab关节table2struct.
をを使と,そのそのテーブルをエンジンがサポートデータ型であるスカラー构造にできできできできできできでき
Eng.eval(“s = table2struct(t,'toscalar',true);”,nargout = 0)eng.eval(“disp(s)”,nargout = 0)
lastName:{100x1 cell}性别:{100x1 cell}年龄:[100x1 double]位置:{100x1小区}高度:[100x1双]重量:[100x1双]吸烟者:[100x1双]收缩:[100x1双]舒张:[100x1 double] selfasessedhealthstatus:{100x1 cell}
S.
は,matlabワークスペースからpythonセッションに渡すことができます。エンジンエンジン,S.
をpythonディクショナリ.D.
に変换します。
d = eng.workspace [“s”]
S.
エンジンには配列をフィールドありありありありはははは,细胞配列をpython列表
変配列matlab配列に変换します。したがって,d [“lastname”]
はデータ型列表
でありd [“年龄”]
はデータ型matlab.double.
です。
吃烟者と非吃烟者のリストに血圧测定値を并べ替えます。患者.DAT.
では吸烟者
列は,論理1(真正的)で喫煙者を示し,論理0(假)で非喫煙者を示しました。D [“吸烟者”]
を配列matlab.logical.
に変换して并べ替えます。
吸烟者= matlab.Logical(D [吸烟者]])
舒张分子
血圧测定値と吸烟者
インジケーターインジケーター1列100行のmatlab配列に并べ替えます。
压力= D [“舒张分子”压力.ReShape((1,100))压力=压力[0]吸烟者.RESHAPE((1,100))吸烟者=吸烟者[0]
配列压力
をを吃烟者と非非者の血圧测定値のリスト并べ替え并べ替えますますますますますますリスト包表记で,シーケンスシーケンス反复用の圧缩メソッド提供ます.PYTHON .PYTHON关联压缩
をを使する,単一个为了
ループ内で复数のシーケンスを反复することができます。
如果s是真的,则sp = [p for(p,s)在拉链(压力,吸烟者)中] nsp = [p,p,s)在拉链(压力,吸烟者)如果s是假的]
列表
内の吃烟者の血圧测定値SP.
の长さを表示します。
打印(Len(SP))
34.
非吃烟非吃烟者の测定値の列表
であるNSP.
の长さを表示します。
打印(Len(NSP))
66.
吃烟者と非吃烟者の血圧测定値の平均を计算します。SP.
およびNSP.
をmatlab关节的意思是
に渡す前にmatlab配列に変换します。
sp = matlab.double(sp)nsp = matlab.double(nsp)print(eng.mean(sp))
89.9117647059
非吃烟者の平面血圧を表示します。
打印(ENG.MEAN(NSP))
79.3787878788
吃烟者者と非吃烟の血圧测定値定値をプロットしプロット用ににににににX轴轴を定义するには,MATLAB相关数Linspace.
を呼び出します.34人の吃烟者と66人の非者を1つのつの布図にプロットできでき。
SDX = ENG.LINSPACE(1.0,34.0,34)NSDX = ENG.LINSPACE(1.0,34.0,66)
关节有关部盒子
を使用して轴の境界を示します。
Eng.figure(nargout = 0)eng.hold(“开”,nargout = 0)eng.box(“开”,nargout = 0)
关节有关部数字
那抓住
および盒子
は出力引数を返さないため,nargout = 0.
をを指定してて呼び出さばなりませませ
吃烟吃烟者と非吃烟者の血圧测定値をプロット,そのそのプロットにラベルを付け付け。多重くmatlab关键杂志,エンジンはmatlabグラフィックスオブジェクトハンドルをことができます.matlabオブジェクトのををpython,蟒蛇,蟒蛇でオブジェクトのプロパティ操することはません.MATLABオブジェクトをはません。
Eng.Scatter(SDX,SP,10,'Blue')
この例の残りの部分では,MATLAB関数の出力引数をプレースホルダーとしてH
に割り当てます。
H = Eng.Scatter(NSDX,NSP,10,'Red')H = Eng.xLabel(“患者(匿名)”)H = Eng.ylabel(“舒张压(MM Hg)”)H = Eng.title(“所有患者的血压读数”)H = Eng.Legend(“吸烟者”,“非闻名者”)
x = matlab.double([0,35])y = matlab.double([89.9,89.9])h = eng.line(x,y,“颜色”,“蓝色”)h = eng.text(21.0,88.5,“89.9(吸烟)”,“颜色”,“蓝色”)y = matlab.double([79.4,79.4])h = eng.line(x,y,“颜色”,“红色”)h= eng.text(5.0,81.0,“79.4(nonsmoker avg。)”,“颜色”,“红色”)