2016-11-01 6 views
0

私はPythonコードからmatlab関数を実行しようとしています。これを行うことについて、私は、この単純なコードを書かれている:PythonからMatlab関数を呼び出す

#!C:/Python3/python.exe 

import os 

os.chdir("C:/xampp/cgi-bin/") 
os.system('matlab -r "logaritmic C:/xampp/htdocs/img/resim.jpg ,3"') 

logaritmic機能は2つの変数、フォルダの場所とlogaritmic係数を取得します。 私はこのスクリプトを実行するmatlabが実行されますが、私は間違って出力を得ることができます。 function.mスクリプトのinput(3)を変更すると、コードは正しく動作します。問題は誤って入力されています。今、どこで私のせいにしているのですか? 私は何をしなければなりませんか?

答えて

0

問題は、matlabが入力を文字列として取得することです。だからコードが間違って実行されます。この問題を解決するために、対数関数を変更することができます。例えば、 '3'文字列は、x = str2num(str)メソッドを使用してfunction.mスクリプト内の整数に変換できます。

0

私は間違いなくmatlabの男ですが、私はあなたの関数(logaritmic)コマンドラインからパラメータを渡すことはできないと思います。

This forum postが役に立ちます。

乾杯

チャーリー

0

logaritmicがあなたの関数である場合は、正しい呼び出しはこれがlogaritmicは二つの引数を持っていることを前提とし

logaritmic("C:/xampp/htdocs/img/resim.jpg",3) 

のように見えるshoud。明らかに、Pythonで文字列を正しくエスケープする必要があります。

+0

コードはこのos.system( 'matlab -r "logaritmic(' C:/xampp/htdocs/img/resim.jpg '、3)' ')のようになりますので動作しません。引用符を利用できます –

関連する問題