• ベストアンサー

MATLABのmexでLAPACKを使う方法

MATLABのmexで、LAPACKを使いたいのですが、 サイバーネットのページを見ても良くわからず、 困っています。 逆行列の計算方法で、とある方法を思いついたので、 試したいのですが、m-fileでは遅くなってしまうので、 mexで作りたいのです。 そこで、LAPACKにすでにあるものは利用したいのですが、 どのようにしたらよいか、わからないのです。。。 WindowsでCLAPACKを使う方法がわかればそれでも良いのですが・・・ (Unix, Linuxは使っていません) よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.1

普通のプログラムからLAPACKを使うときと同じようにして、 必要なファイルをインクルードしておけばいいです。で、 mex Cソースファイル 他に必要なCファイル ライブラリファイル みたいな感じで必要なファイルを全部並べて書けばいいです。 なんか、それっぽいヘルプがありました。 http://dl.cybernet.co.jp/matlab/support/manual/r14/toolbox/matlab/matlab_external/?/matlab/support/manual/r14/toolbox/matlab/matlab_external/ch_c_m16.shtml#32436

mogia77
質問者

お礼

そのヘルプは読んだのですが、意味がさっぱりで・・・ そして、どれをインクルードすれば良いのかもわかりません(汗 でも、とにかく必要なものをインクルードすれば良いわけですね! 明らかに知識が足りないっぽいんで、 mexとLAPACKについて、もっと勉強しますm(__)m ありがとうございました!!

関連するQ&A

  • matlabでc-MEXにmファイルを内蔵する方法

    c-MEXにmファイルを内蔵する方法を教えてください。 パソコンでc-MEX内に作製したMファイルを入れるとエラーを起こしmatlabが強制終了してしまいますがこれを回避する方法を知っていましたら教えてください。

  • Windowsでも使える行列演算ライブラリについて

    プログラミングで行列演算ライブラリを使いたいのですが、開発環境が特殊でMATLABのs-functionというのを使っているため、Windows環境の行列演算ライブラリを探しております。 開発環境が特殊なためCygwinとかも使えません。今のところCLAPACK、CPPLAPACK、BOOSTを使っていますが他に使えそうなライブラリはないでしょうか?使えそうなライブラリはいつもlinuxなんです。 TwT またlinuxなどのUNIX系OSでコンパイルされた拡張子.aのライブラリファイルはWindowsではやはり使えないんでしょうか? よろしくお願いします.

  • MATLABのコンパイルについて

    MATLABのR14SP3を使っているのですが、 コンパイルをしようとするとエラーが発生します。 どうやら使っているmexファイルが旧式のために使えないようです。 書き換えはどのようにしたら良いでしょうか? 以下がエラー文です よろしくお願いします *************************************************************************** Warning: The file extension of 32-bit Windows MEX-files was changed from ".dll" to ".mexw32" in MATLAB 7.1 (R14SP3). The generated MEX-file will not be found by MATLAB versions prior to 7.1. Use the -output option with the ".dll" file extension to generate a MEX-file that can be called in previous versions. For more information see: MATLAB 7.1 Release Notes, New File Extension for MEX-Files on Windows ***************************************************************************

  • matlab matファイルから一部だけを読み込む

    Matlab初心者です、よろしくお願いします。 Matlabでn×m行列のデータが入っているmatファイルからx×y行列のデータを変数に読み込みたいのですが、どうすれば良いのでしょうか? ご教授していただけると助かります。 よろしくお願いします。

  • matlabでファイルをn行目から変数に読み込む方法

    matlabでファイルをn行目から読み込む方法がわかりません。 具体的にはファイルの上9行に説明文が入っていて、10行目からtab区切りでn×m行列のデータが入っているファイルがあって、その中のn×m行列のデータを変数に代入したいのですが、その方法がわかりません。 loadで読み込もうとしたのですが上手くできません。もし読み込む方法があるのなら誰か教えてください。

  • Matlabのspdiags関数

    Matlabのspdiags関数に関してわからないところがあります。以下はMatlabのヘルプWebページから持ってきた例です。http://dl.cybernet.co.jp/matlab/support/manual/r2006/toolbox/matlab/math/?/matlab/support/manual/r2006/toolbox/matlab/math/sparse4.shtml B = [ 41 11 0 52 22 0 63 33 13 74 44 24 ]; d = [-3 0 2];、m=7, n=4のとき A = spdiags(B,d,7,4) A = (1,1) 11 (4,1) 41 (2,2) 22 (5,2) 52 (1,3) 13 (3,3) 33 (6,3) 63 (2,4) 24 (4,4) 44 (7,4) 74 これに対応するフル行列Aは、つぎのようになります。 full(A) ans = 11 0 13 0 0 22 0 24 0 0 33 0 41 0 0 44 0 52 0 0 0 0 63 0 0 0 0 74 mやnというのはfull(A)がm行n列の行列であるというイメージの対応がわかるのですが、d = [-3 0 2]とfull(A)の行列の関係がわかりません。-3,0,2というのはfull(A)のどこを見れば良いのでしょうか。

  • matlabの行列計算の最大サイズはいくつですか?

    顔認識の研究にmatlabを使用していますが 複数の普通の画像をそのまま行列にすると 87500×87500やそれ以上のサイズの 分散共分散行列を計算することになってしまい 「メモリが足りません」 と表示されます。 どのくらいのサイズまでmatlabは計算できるのでしょうか? また、3*90000くらいの大きなサイズの行列から covを使わないで(というか大きすぎて使えない) 分散共分散行列を求める方法があったら教えてください!

  • MATLABにおける行の挿入方法

    こんにちは,現在データ整理のためにMATLABを用いて以下のようなプログラムを構築しています 1.ファイルを読み,その値を100行7列の行列Aとする 2.Aの10行目と11行目の間に1行7列の行列B1を挿入する (イメージ的にはEXCELの行の挿入です) 3.同様に20行目と21行目の間に1行7列の行列B2を挿入する 4.以降10行ごとに繰り返す となります.ここで2の処理にあたる「行列の特定の列の間に別の行列を挿入する」方法がわかりません いろいろ調べたのですが、このような方法はどこにもありませんでした MATLABに詳しい方,教えていただけないでしょうか?

  • c言語のプログラムにMATLABを入れたい

    CプログラムからのMATLABの呼び出しを行いたいのですが その環境設定の方法が http://dl.cybernet.co.jp/matlab/support/manual/r14/toolbox/matlab/matlab_external/?/matlab/support/manual/r14/toolbox/matlab/matlab_external/ch_c_mex.shtml 上記ページに書かれているのですが icudt24b.dat,or icudt24l.datがないので手に入れたく探したのですが 見当たらないので入手先をご存知の方がいたら教えていただきたいのと 自分のシステムがbig-endian、little-endianのどちらのシステムか判別する方法を教えて頂きたいです。

  • C言語→MATLABへの変換で、困っています。

    学生研究でMATLABを使用しています。 光学測定系で画像を取り込み、それを解析する実験を行っています。 MATLABはプログラム内の値の変更や処理の追加できることから 大変助かっています。 そこで、もともとはC言語でやっていた3種類の処理を 一つのMファイルで行いたいと思い。 只今、C→MATLAB変換するプログラムの書き直しを行っています。 そのうち2種のプログラムは行列の計算がメインだったため何とか Mファイルに書き直すことができたのですが、 最後のひとつが難しい関数らしきものが多く、 MATLABに書き直すことができるプログラムなのかもわからない状態です。 そこで、 ・C→MATLAB変換可能なプログラムか? ・書き直すにあたってどこを部分を直せばよいのか? をアドバイスいただけないでしょうか? ↓MATLAB化したいC言語ファイル http://karispace.web.fc2.com/cmat2.c 一枚のbmp画像から4枚のdatデータを出力するプログラムです。 C言語とMATLABの三ヶ月前に勉強して、使用しており、基礎がわかる程度です。 よろしくお願いします。