python呼び出しoctave


pythonは強力な接着言語ですJavaなどのヘビー級プログラミング言語とshellなどの軽量なスクリプトの利点を兼ね備えています.実験ではデータベースやテキスト解析を処理する作業を任せることができます.pythonはnumpy、scipyを利用して科学計算の問題を処理することができますが、arrayとmatrix、疎行列が同時に定義されており、オブジェクトごとに処理方法が異なり、頭が大きいです.
Otaveとmatlabは高度に互換性があり、オープンソースと軽量の特徴を兼ね備えており、マトリクス計算を処理するのに最適であり、特に多くのアルゴリズムは量子化(vectorization)することができ、計算過程を簡潔で美しく実用的にすることができる.
一緒に仕事をさせてもらえませんか?
ステップ1:octaveをスクリプトとして実行できるようにします.
スクリプトの頭に次のように書きます.
#!/usr/bin/env/Applications/Octave.app/Contents/Resources/bin/octave -qf
オペレーティングシステムという実行可能なスクリプトがどの実行可能ファイルで実行できるかを教えてください.ここではoctaveのmac os内の位置を指定します.Windowsの位置も見つかり、記入できます.
そしてこのファイルを実行可能にします
chmod a+x octaveScipt.m
ステップ2:octaveの実行結果をmatファイルに保存する
pythonとoctaveに計算結果の転送がある場合.では、matファイルを借りる必要があります.
save('-v7','computeResult.mat')
注意:matファイルを保存するバージョンを指定する必要があります.octaveのデフォルトバージョンであれば、pythonのscipy.ioは読めません.
ステップ3:pythonはoctaveスクリプトを呼び出し、octaveスクリプトの計算結果をロードします.
pythonで外部のスクリプトのコマンドを実行すればいいので、計算が完了するまで待ってpythonの後続コマンドを実行します.
os.system("./octaveScript.m")
計算結果をロード:
mag=sio.loadmat("computeResult.mat")["mag"]
octaveScript.m
!/usr/bin/env /Applications/Octave.app/Contents/Resources/bin/octave -qf                                                                                     
a=[1,2,3]; 
a; 
for i=1:10
        fprintf('It is octave
') end mag=magic(3) save('-v7','computeResult.mat','mag') # end of script

callOctave.py
import os
import scipy.io as sio 

os.system("./octaveScript.m")                                                                                                                                 
for i in range(0,10):
        print("it's python")

mag=sio.loadmat("computeResult.mat")["mag"]
print(mag)

callOctaveを実行する.pyの結果:
It is octave It is octave It is octave It is octave It is octave It is octave It is octave It is octave It is octave It is octave mag =    8   1   6    3   5   7    4   9   2 it's python it's python it's python it's python it's python it's python it's python it's python it's python it's python [[ 8.  1.  6.]  [ 3.  5.  7.]  [ 4.  9.  2.]]