當前位置:首頁 » 編程軟體 » matlabmex編譯器

matlabmex編譯器

發布時間: 2022-05-16 04:12:20

Ⅰ 如何設置matlab 編譯器 mex

mex -setup
Please choose your compiler for building external interface (MEX) files:

Would you like mex to locate installed compilers [y]/n? y

Select a compiler:
[1] Lcc-win32 C 2.4.1 in D:\Programs\MATLAB\R2010a\sys\lcc
[2] Microsoft Visual C++ 2005 SP1 in D:\Program Files\Microsoft Visual Studio 8
[3] Microsoft Visual C++ 6.0 in C:\Program Files\Microsoft Visual Studio

[0] None

Compiler: 2

Please verify your choices:

Compiler: Microsoft Visual C++ 2005 SP1
Location: D:\Program Files\Microsoft Visual Studio 8

Are these correct [y]/n? y

Trying to update options file: C:\Documents and Settings\Administrator\Application Data\MathWorks\MATLAB\R2010a\mexopts.bat
From template: D:\Programs\MATLAB\R2010a\bin\win32\mexopts\msvc80opts.bat

Done . . .

**************************************************************************
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the new
API. You can find more information about this at:
http://www.mathworks.com/support/solutions/en/data/1-5C27B9/?solution=1-5C27B9
Building with the -largeArrayDims option enables the new API.
**************************************************************************

Ⅱ matlab mex 編譯器怎麼編譯文件

通過MEX文件可以在MATLAB中像調用內嵌函數一樣調用現有的使用C語言和Fortran等語言編寫的函數,實現了代碼重用,同時也能解決MATLAB循環效率低的缺點,提高MATLAB環境中數據處理的效率。
MEX文件的後綴名為 .mexw32
MEX文件的編寫和編譯需要兩個基本條件:一是必須按照MATLAB應用程序介面組件和相關工具,二是要有C語言或Fortran語言的編譯器。
需要對MATLAB系統進行設置,使MATLAB系統知道使用系統的哪一個C語言編譯器,以及其參數和路徑。
MEX文件系統設置:
>> mex –setup按照提示進行,最後出現Done…系統配置完畢。
C語言MEX文件的建立
C語言MEX文件的建立
1. MEX文件的結構
a) 計運算元程序
b) 入口子程序,void mexFunction(int nlhs, mxArray *plhs[],int nrhs,const mxArray *prhs[]){ /*用戶特定的代碼….*/ }
2. 創建timestwoalt.c
#include "mex.h"
void timestwo_alt(double *y, double x)
{
*y = 2.0*x;
}
void mexFunction( int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[] )
{
double *y;
doublex;
/* 檢查參數 */
if (nrhs != 1) {
mexErrMsgTxt("One input argument required.");
} else if (nlhs > 1) {
mexErrMsgTxt("Too many output arguments.");
} else if (!mxIsNumeric(prhs[0])) {
mexErrMsgTxt("Argument must be numeric.");
} else if (mxGetNumberOfElements(prhs[0]) != 1 || mxIsComplex(prhs[0])) {
mexErrMsgTxt("Argument must be non-complex scalar.");
}
/* 為輸出參數創建變數 */
plhs[0] = mxCreateDoubleMatrix(1,1,mxREAL);
/*
為參數 x、y賦值,x為值,而y為指針
(由於MATLAB沒有值傳遞,所以用指針才能得到修改後的y值,
不然修改的是y的一個副本,為臨時變數,在函數返回時,y值沒有變化,
不能得到希望的結果)
*/
x = mxGetScalar(prhs[0]);
y = mxGetPr(plhs[0]);
/* 調用timestwo_alt 子函數 */
timestwo_alt(y,x);
}
3. 編譯鏈接C語言的MEX文件源程序,在MATLAB的控制窗口中輸入:mex timestwoalt.c生成一個名為timestwoalt.mexw32的MEX文件
4. 運行:在MATLAB的控制窗口中輸入
x=2;
y=timestwoalt(x)
輸出:y=4
MEX文件實現了一種C語言與MATLAB的介面,其實際的計算功能仍在C語言形式的計運算元程序中完成,而入口子程序的功能是檢查參數以匹配C語言的參數規范(how to?)。
當有C語言編寫的大型程序時,不必用MATLAB語言重新編寫,只要將此C語言程序作為一個計運算元程序,然後編寫一個入口子程序,完成參數的匹配,然後編譯成MEX文件即可。
MEX文件的另外一個功能是可以將MATLAB編程中的瓶頸問題,如多重循環等,將此類費時的指令用C語言實現,然後作必要的入口子程序,編譯成MEX文件,可以有效地提高MATLAB的效率。
S-函數創建器限制了C語言S-函數的功能:只能有一個輸入信號和一個輸出信號,而且只能處理double類型的數據!所以,可用性不大。

Ⅲ matlab 中mex -setup 編譯器怎麼弄

這個需要你的電腦上安裝有C++6.0才能出來,mex -setup列出的編譯器都是你電腦上的,你圖上的[1] Lcc-win32是matlab自帶的編譯器。
由於你電腦上沒安裝其他的編譯器,當然就檢測不到C++6.0

Ⅳ MATLAB mex 找不到編譯器怎麼辦

①選y後,MATLAB會列出當前機器上已經安裝的、且與當前MATLAB版本兼容的所有C編譯器,一般而言,MATLAB都會自帶一個LCC編譯器,然而LCC目前僅支持32位的MATLAB,所以你的機器上沒有。

②選n後,MATLAB會列出所有與當前MATLAB版本兼容的C編譯器類型(不管你是否已經安裝,用於幫助用戶選擇合適的C編譯器),你機器上已經安裝的2個編譯器,VC6.0:MATLAB從R2010b之後不再支持,所以選項里看不到;而SDK7.1選n時可以看到([11]),但選y時沒有跳出,是因為MATLAB沒有正確定位SDK。

③解決方法:

方法一:如果以預設選項安裝了SDK7.1(不改變默認安裝路徑),可以嘗試輸入n後,選擇 [14] (注意:是14,不是11!),強制定位該編譯器(網上有人用這種方法成功了:http://mlinking.blog.163.com/blog/static/185801922201331464626365/)

方法二:重新安裝MATLAB,安裝時選擇32位進行安裝,則自帶LCC編譯器。

方法三:選擇適配的VS版本,下載安裝後,重新配置MEX命令。

Ⅳ MATLAB的M文件、MEX文件、MAT文件是什麼

.M文件是保存一段代碼的文件,類似於C語言中的一個函數體;
這也是MATLAB中最常見的文件保存格式之一
.MEX文件是一種「可在matlab環境中調用的C(或fortran)語言衍生程序」。也就是說,MEX文件的源碼文件是由C或Fortran語言編寫的,後經matlab編譯器處理而生成的二進制文件;它可以被matlab解釋器自動裝載並執行的動態鏈接程序,這種文件在windows下是ddl文件。
.mat是matlab的數據存儲的標准格式。也就是你操作產生的數據的一個集合包,可以把一次處理的結果保存,供下一次使用。
你可以調用matlab的子程序庫,用c或fortan調用mat格式的數據。有幾種方法可以打開1.matlab中可以用load命令讀取.mat文件
2.C語言中有API讀取.mat文件,如matOpen,
matClose等等
3.用記事本就可以打開.mat文件,.mat文件格式是公開的,你可以自己解析裡面的內容

Ⅵ 如何MATLAB2013a在win8-64位系統上能裝mex編譯器

要用MATLAB2013a的mex功能重新編譯一下C文件,但是64位的MATLAB沒有自帶的編譯器。所以使用mex -setup安裝。安裝MATLAB2013a支持的編譯器,有SDK7.1等21個,但是win8的電腦似乎裝不了SDK7.1,有SDK8.1 可以裝在win8.1 上,但是悲劇的是MATLAB2013用不了SDK8.1.所以想單獨裝[19] Microsoft Visual C++ 2008 SP1 [20] Microsoft Visual C++ 2010 [21] Microsoft Visual C++ 2012,卻說這些是win8系統自帶的不能再裝了。請問這種情況該怎麼辦呢?難道要重裝系統換成win7用SDK7.1。我還沒有MATLAB2014而且也不確定MATLAB2014能否用SDK8.1。總之,如何使MATLAB2013a在win8-64位操作系統下安裝mex編譯器

Ⅶ MATLAB 如何配置編譯器

在MATLAB的Command Window下輸入命令 mbuild –setup,並根據MATLAB的提示選擇合適的編譯器,使用Microsoft Visual C++6.0,進行對C++連接環境的設置。
過程如下:
>> mbuild -setup
按照提示選擇操作,選擇編譯器進行安裝
然後,在MATLAB的Command Window下輸入命令 mex –setup,進行對編譯環境的設置。過程如下:
>> mex -setup
按照提示選擇操作,選擇你所需要的編譯器就可以了。

Ⅷ 請問有大佬知道為什麼MATLAB裡面mex可以找到編譯器但是mbuild不行

MATLAB會列出當前機器上已經安裝的、且與當前MATLAB版本兼容的所有C編譯器,一般而言,MATLAB都會自帶一個LCC編譯器,然而LCC目前僅支持32位的MATLAB,所以你的機器上沒有。

Ⅸ 關於matlab 中的mex用法和編譯器的問題。

沒有問題的。 但不能想像一點不修改。 Mex就是matlab編譯後產生的執行文件。

Ⅹ MATLAB 錯誤使用 mex

要解決相關的mex命令找不到編譯器,首先就需要了解相關命令調用的配置文件的路徑位於:<MatlabRoot>/bin/win64/mexopts,裡面有很多和和編譯器以及SDK相關的環境配置文件,如圖所示。

1、matlab版本問題

標明了不同類型版本的編譯器配置文件,如果編譯器版本的配置信息不在這個文件夾裡面自然會提示找不到到文件夾。這類問題網上有很多解決方法,提供了很多相應版本的配置文件,只要將其拷到mexopts文件夾下,就解決了。

2、配置文件裡面的路徑和電腦的實際路徑不一致

解決方法:要仔細核對 msvc2013.xml和msvcpp2013.xml這兩個配置文件的信息。

(10)matlabmex編譯器擴展閱讀:

通過使用MEX文件,MEX文件使得調用C函數和調用Matlab的內置函數一樣方便。MEX文件是由原C代碼加上MEX文件專用的介面函數後編譯而成的。

MEX文件實現了一種介面,它把在Matlab中調用函數時輸入的自變數通過特定的介面調入了C函數,得出的結果再通過該介面調回Matlab。該特定介面的操作,包含在mexFunction這個函數中,由使用者具體設定。

熱點內容
解壓軟體java 發布:2024-03-29 12:40:32 瀏覽:282
長安cs35壓縮比 發布:2024-03-29 12:39:58 瀏覽:176
java中編譯器默認導入jdk包 發布:2024-03-29 12:23:26 瀏覽:365
中山大學資料庫 發布:2024-03-29 12:20:44 瀏覽:695
創造與魔法哪個腳本不要錢 發布:2024-03-29 12:20:38 瀏覽:441
medly安卓版在哪裡進行作曲 發布:2024-03-29 12:20:37 瀏覽:427
php所有空格 發布:2024-03-29 12:19:28 瀏覽:656
asp建立資料庫 發布:2024-03-29 12:07:18 瀏覽:533
存儲許可權是什麼意思 發布:2024-03-29 11:55:01 瀏覽:812
網路通信加密 發布:2024-03-29 11:48:49 瀏覽:611