10

Python から Mathematica 関数を呼び出す方法を知りたいです。

たとえば、 Mathematica 関数Primeを使用した例に感謝します。

MathLinkについて検索しましたが、Python でそれを使用する方法は、私には少しあいまいです。

私はpymlと呼ばれる Mathematica-Python ライブラリを使用しようとしましたが、おそらくこのライブラリが非常に古いように見えるため、成功しませんでした (チュートリアルでは Mathematica 2 または 3 と表示されています)。

ソースをコンパイルしようとしましWolfram/Mathematica/8.0/SystemFiles/Links/Pythonたが、python 2.6 を使用しているときにいくつかのエラーで終了しました (ドキュメントでは、python 2.3 でのみ動作するはずです)。

Pythonika は興味深いですが、Mathematica ノートブックで使用するだけのようで、.pyMathematica 関数を呼び出すファイルを作成したいと考えています。

それで、Mathematica 関数を使ったPythonプログラムを書く良い方法を知っている人がいて、例を教えてくれませんか?

4

2 に答える 2

3

Python MathLink モジュール (.../SystemFiles/Links/Python にあるソース) を使用して、Python で Mathematica 関数を呼び出すことができますが、それを起動して実行するには、いくつかのセットアップ ファイルを編集する必要があります (support@ wolfram.com がお手伝いできるはずです)。

Python から Prime を使用するには、次のように実行します。

カーネル.レディ()

0

kernel.putfunction("プライム",1)

カーネル.putinteger(10)

カーネル.フラッシュ()

カーネル.レディ()

1

カーネル.nextpacket()

3

パケット記述辞書[3]

「リターンパケット」

カーネル.getinteger()

29

于 2012-04-23T15:38:40.270 に答える
3

私は解決策を見つけました。

手順:

1- runMathという名前のスクリプトを次の内容で作成します。

#!/usr/local/bin/MathematicaScript -script

value=ToExpression[$ScriptCommandLine[[2]]];

(*The next lime prints the script name.*)
(*Print[$ScriptCommandLine[[1]]];*)

Print[value];

2-ファイルに実行権限を与えました。

sudo chmod +x runMath

3-ファイルを実行パスに移動しました

sudo mv runMath /usr/bin/

4-次の内容でrunという名前の新しいスクリプトを作成しました。

#!/usr/bin/python
from subprocess import *
from sys import *

command='/usr/bin/runMath'
parameter=argv[1]

call([command,parameter])

5-実行パスに移動

sudo mv run /usr/bin

6-最後に、それをテストしました:

$run Prime[100]
541

$run 'Sum[2x-1,{x,1,k}]'
k^2

$run Integrate[Log[x],x]
-x + x*Log[x]

$run 'Zeta[2]'
Pi^2/6

の有無にかかわらず使用できます'。は'、スペースを含むコマンドに必要です。

$run 'f[n_] := f[n] = f[n - 1] + f[n - 2]; f[1] = f[2] = 1; Table[f[n],{n,5}]'
{1, 1, 2, 3, 5}

幸せ!

于 2012-04-23T19:53:45.573 に答える