主要内容

このページの翻訳は最新ではありませ。

Pythonからの马铃薯草データの并べ替えとプロット

この例では,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。)”,“颜色”,“红色”)

参考

|