matlab中用mex編譯出錯
① 請教關於利用Matlab中「mex」命令編譯C程序的問題
1.准備好C語言程序,清楚C語言的入口函數
2.編寫mexfunction函數。mexfunction函數為C語言與MATLAB語言的介面函數。調用實例在mylinedetect.c文件中.在MATLAB中調用mex指令編譯相關文件,將C語言編譯為MEX文件。
3.編譯完成後,生成mylinedetect.mexw32或mylinedetect.mexw64文件,此文件即mex文件,用於MATLAB與C語言介面函數.
4.編譯完成之後,編寫MATLAB函數,調用MEX文件。以MEX文件的形式調用編譯完成的C語言函數[o1,o2]=mylinedetect(double(X).');......
5.輸出結果,上述linedetect函數完成圖像中直線檢測功能,帶入MATLAB中調用後形成結果。
② MATLAB編譯器配置mex -v 出錯
[r,c]
=
find(r
==
max(r(:)));
檢索r中最大元素所在的位置(行標r和列標c)
thetap
=
theta(c(1));
theta()是自定義函數
③ MATLAB 錯誤使用 mex
要解決相關的mex命令找不到編譯器,首先就需要了解相關命令調用的配置文件的路徑位於:<MatlabRoot>/bin/win64/mexopts,裡面有很多和和編譯器以及SDK相關的環境配置文件,如圖所示。
1、matlab版本問題
標明了不同類型版本的編譯器配置文件,如果編譯器版本的配置信息不在這個文件夾裡面自然會提示找不到到文件夾。這類問題網上有很多解決方法,提供了很多相應版本的配置文件,只要將其拷到mexopts文件夾下,就解決了。
2、配置文件裡面的路徑和電腦的實際路徑不一致
解決方法:要仔細核對 msvc2013.xml和msvcpp2013.xml這兩個配置文件的信息。
(3)matlab中用mex編譯出錯擴展閱讀:
通過使用MEX文件,MEX文件使得調用C函數和調用Matlab的內置函數一樣方便。MEX文件是由原C代碼加上MEX文件專用的介面函數後編譯而成的。
MEX文件實現了一種介面,它把在Matlab中調用函數時輸入的自變數通過特定的介面調入了C函數,得出的結果再通過該介面調回Matlab。該特定介面的操作,包含在mexFunction這個函數中,由使用者具體設定。
④ 在matlab中使用mex編譯無法找到編譯器
.M文件是保存一段代碼的文件,類似於C語言中的一個函數體; 這也是MATLAB中最常見的文件保存格式之一 .MEX文件是一種「可在matlab環境中調用的C(或fortran)語言衍生程序」。也就是說,MEX文件的源碼文件是由C或Fortran語言編寫的,後經matlab編
⑤ matlab中mex編譯出問題"Specified export _mexFunction is not defined ",都配置好了呀.
matlab自帶的LCC編譯器不支持中文注釋,而程序中出現了中文注釋!
⑥ 為什麼我在Matlab編譯mexall的時候總是出錯
這個問題我恰好遇到過。這個版本的matlab必須放在不包含空格的文件夾下,program
files就是不行的,把它刪了,重新裝到c盤根目錄下就好了。
⑦ c++ 編輯的.cpp文件如何在matlab中mex編譯報錯
他不是報錯 undefined reference to `VCI_ClearBuffer' 嗎?說明你這個VCI_ClearBuffer的變數未定義啊,第二個地方是ld returned 1 exit status,出現這個錯誤一般是你上一個編譯運行的窗口沒有關閉。
⑧ matlab mex -setup執行出錯,這是什麼錯誤應該怎麼操作
>> mex -setup
Please choose your compiler for building external interface (MEX) files:
Would you like mex to locate installed compilers [y]/n?
選擇n,後
Select a compiler:
[1] Intel C++ 11.1 (with Microsoft Visual C++ 2008 SP1 linker)
[2] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 Shell linker)
[3] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 SP1 linker)
[4] Intel Visual Fortran 10.1 (with Microsoft Visual C++ 2005 SP1 linker)
[5] Lcc-win32 C 2.4.1
[6] Microsoft Visual C++ 6.0
[7] Microsoft Visual C++ 2005 SP1
[8] Microsoft Visual C++ 2008 Express
[9] Microsoft Visual C++ 2008 SP1
[10] Microsoft Visual C++ 2010
[11] Microsoft Visual C++ 2010 Express
[12] Open WATCOM C++
[0] None
Compiler:
輸入安裝的VC編輯器選項,之後會提示VC的安裝地址,修正之,即可。
⑨ matlab mex編譯環境配置錯誤,怎麼回事
這是因為你的命令有問題,mex 和 -setup 之間要有一個空格,即「mex -setup」才對