dポイントプレゼントキャンペーン実施中!

VCで作成したプログラムからMATLABあるいはMathematicaで作成した自作関数を呼び出したいのですが、やり方がわかりません。それ以前に、自作関数を呼び出すことができるのかもわかりません。ご存知の方はご教授をお願いします。

ちなみに、MATLABのホームページで調べてみたところ、MATLABが用意する関数を呼び出すことができるみたいです。自作関数を呼び出す方法についての説明は見当たりませんでした。また、DLLやCOMオブジェクトを作成する方法がありましたが、DLLやCOMではなく、MATLABファイルに記述された自作関数が呼び出せるようにしたいのです。Mathematicaについては全くわかりません。

自作関数を呼び出したい理由としては、数値解析のプログラムをVCで作っているのですが、このプログラムのコアとなる数値解析をおこなう処理をMATLABやMathematicaで作成した自作関数にまかせ、このコアとなる数値解析の処理を簡単に書き換えができるようにしたいのです。

以上、よろしくお願いします。

A 回答 (2件)

結構そういうことってありますよね.


MathematicaはもっていないのでMATLABの場合についてアドバイスをしたいと思います.
M-ファイルでも結構良いのですが,今までのSW資産(ライブラリ)を使いたい時ってありますね.
一番スマートな方法はRTW(Real-Time Workshiop)を使うことですが,この文献がほとんどありません
(「MATLABによる組込みプログラミング入門」,CQ出版あるいは「Mastering SIMULINK」Person Prentice Hall).
もしRTWがない場合はMATLABエンジンを使う方法があります.これは,自作アプリケーションからMATLABの各種機能を実行するものです(MATLABエンジンを起動すると裏でMATLABが起動します).少々実行が重くなりますが,MATLABすべての機能を使うことが出来ます(ネットワークに繋がっていても可能と思います).
具体的にはVCの環境からlibeng.libをリンク必要があります(VC6.0とVC.NETでは設定が違うと思いますが...).それと,"Engine.h"ヘッダファイルをインクルードします.ソースのほうではengOpen関数を使ってMATLABを裏で起動します.で,MATLABのコマンドを文字列を使って実行させます.実行が終わったらengClose関数を使ってMATLABを終了します.これをしないとずっとMATLABが動いていますのでご注意ください.
詳しくは”参考URL”を見てください.
MATLABエンジンが記述されている文献として
「最新使える!MATLAB」講談社
があります.
少々長いアドバイスになってしまいましたが,ガンバってください.

参考URL:http://www.cybernet.co.jp/matlab/support/manual/ …
    • good
    • 0
この回答へのお礼

有難う御座いました。Mathematicaに比べると結構情報が多そうですね。

お礼日時:2006/05/08 16:54

MathematicaならMathLinkが使えます。


古いけど、MathLinkのプログラミングの本。結構解りやすいと思います。Mathematicaもってないから試してませんが。

参考URL:http://www.lib.city.chofu.tokyo.jp/cgi-bin/detai …
    • good
    • 0
この回答へのお礼

有難う御座いました。参考URLを見てみます。

お礼日時:2006/05/08 16:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!