- 締切済み
c言語についての質問です
c言語で複雑な処理をmathematicaに処理させてその結果をc言語に出力させたいのですが可能ですか? また、可能な場合どのようにすればいいですか。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- sanze_hui
- ベストアンサー率100% (6/6)
呼び出す際にはそれほど特別なことは行いません(何を以って「特別」なのかが分かりませんが、通信を行うプログラムとしては普通です)。 前回の参照URLに書いてあるように、 1. カーネルを起動して接続 2. カーネルにデータ(パケット)を送って計算させる 3. 返されたデータ(パケット)を処理する 4. 最後は接続を閉じて終了 という流れです。 呼び出す時よりも、コンパイルやリンクする際にヘッダファイルやライブラリを自分の環境に合わせて準備しておく必要がありますので、ちょっと面倒です。 幸い日本語のドキュメントがありますので、一通りお読みになることをおすすめします。
- sanze_hui
- ベストアンサー率100% (6/6)
可能です。 最新のMathematicaではWSTPという名前になりましたが、私が使っているMathematica 8ではMathLinkという名前でした。 私の環境と名前が変わっているため、詳しくは参考URLを見ていただくしかないのですが、Mathematicaをインストールしたディレクトリの下に、サンプルファイルがいくつかありますので、それを見ながら試行錯誤してみてください。 Linux 64bit、Mathematica 8の場合は/usr/local/Wolfram/Mathematica/8.0/SystemFiles/Links/MathLink/DeveloperKit/Linux-x86-64/MathLinkExamplesにサンプルがありますが、環境やMathematicaのバージョンによって多少変わっていると思います。 ちなみに、C以外でも、.NETの言語(C#やVB.NET)、JavaからもMathematicaを呼び出せます。やりたいことに合わせて選択してください。
お礼
ありがとうございます。 参考しさせていいただきます。 もうひとつ質問なのですがc言語側では呼び出す際には何か特別なことはしないんですか。
お礼
ありがとうございます。 ちなみに環境は windows vista cygwin mathematica 9 です。