看板 MATLAB 關於我們 聯絡資訊
如果有違反板規麻煩告知我,我自D 我現在有一個matlab的檔案叫做 mutualinfo.m function h = mutualinfo(vec1,vec2) [p12, p1, p2] = estpab(vec1,vec2); h = estmutualinfo(p12,p1,p2); 其中 estpab這個function要先用mex()來進行編譯 因為那是c/c++的function 實際步驟是: mex -setup makeosmex ///////////////////makeosmex.m////////////////// list = dir('*.cpp'); for i=1:length(list) fprintf('building mex(dll) of %s\n',list(i).name); mex(list(i).name); end; //////////////////////////////////////////////// makeosmex.m會利用 estpab.dll 這個檔案產生 estpab.cpp estpab.mexw64 而matlab就是使用estpab.mexw64 以上都還是在matlab裡面執行程式,且可以正常執行 而當我把mutualinfo.m檔案轉換成 .dll .h .cpp檔案 然後用VS2008 去呼叫 mutualinfo這個 function時就會出現下面的問題 undefined function 'estpab'...... 因為estpab原本就是matlab 去呼叫c/c++,然後用mex()編譯的程式碼 所以當我要轉過去VS2008 C++ 使用時就出錯了 我有想說用.m檔的轉換方法,把estpab.mexw64也轉換成 .dll .cpp .h 然後用VS2008去呼叫,可以還是會出現錯誤 undefined function 'estpab'...... 想請問各位 我這種情況該如何解決... 對matlab很不熟,又很急要解決這問題... 更簡單的來解釋我的問題的話 就是 有一個 mutualinfo.m檔 其中用到的function 是 呼叫c/c++的function(利用mex(dll))來產生estpab.mexw64檔案 使得matlab可以直接呼叫estpab.mexw64來執行 estpab(); 那當我要把 mutualinfo.m轉成 .dll檔,讓VS2008 C++ 呼叫時 會出現 undefined function 'estpab'... 要如何解決這個undefined function的問題?? 我主要就是要在VS2008 C++上執行程式,老師不給直接用matlab... 可以用呼叫的,很囧~"~ 以下是matlab的function 載點,是open的source code http://ppt.cc/qIg2 請點右上角下載 麻煩各位神人解救我 m(__)m 再次感謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.113.185.111 ※ 文章網址: http://www.ptt.cc/bbs/MATLAB/M.1418050353.A.184.html
windg: 你的estpab.mexw64的檔案放在哪個資料夾? 12/13 11:27
windg: 這個error應該是說找不到檔案 可能要查一下你的路徑 12/13 11:28
vn503024: 請問我遇到錯誤lnk 1181該怎辦 02/16 21:47