C-mex 執行個體

來源:互聯網
上載者:User

Visual Studio 2010 + MATLAB 2011a 中進行如下在實驗(系統Windows 7 pro 64bit)

註:要求VS版本 < Matlab版本

>> mex -setup
 
Welcome to mex -setup.  This utility will help you set up 
a default compiler.  For a list of supported compilers, see 
http://www.mathworks.com/support/compilers/R2011a/win64.html
 
Please choose your compiler for building MEX-files:
 
Would you like mex to locate installed compilers [y]/n? y
 
Select a compiler:
[1] Microsoft Visual C++ 2010 in D:\Program Files (x86)\Microsoft Visual Studio 10.0
 
[0] None
 
Compiler: 1
 
Please verify your choices:
 
Compiler: Microsoft Visual C++ 2010 
Location: D:\Program Files (x86)\Microsoft Visual Studio 10.0
 
Are these correct [y]/n? y
 
***************************************************************************
  Warning: MEX-files generated using Microsoft Visual C++ 2010 require
           that Microsoft Visual Studio 2010 run-time libraries be 
           available on the computer they are run on.
           If you plan to redistribute your MEX-files to other MATLAB
           users, be sure that they have the run-time libraries.
***************************************************************************
 
Trying to update options file: C:\Users\zhang\AppData\Roaming\MathWorks\MATLAB\R2011a\mexopts.bat
From template:              D:\PROGRA~1\MATLAB\R2011a\bin\win64\mexopts\msvc100opts.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.
**************************************************************************

addtiontest.c

 1 #include <mex.h>
2
3 double addtiontest(double x, double y);
4 double doublesize(double a, double b);
5
6 void mexFunction(int nlhs, mxArray *plhs[], int nrhs,const mxArray *prhs[])
7 {
8 double*a;
9 double b, c;
10
11 plhs[0] = mxCreateDoubleMatrix(1, 1, mxREAL);
12 a = mxGetPr(plhs[0]);
13 b =*(mxGetPr(prhs[0]));
14 c =*(mxGetPr(prhs[1]));
15 *a = addtiontest(b, c);
16 }
17
18 double addtiontest(double x, double y)
19 {
20 double z;
21 z = doublesize(x,y);
22 return z;
23 }

 

doublesize.c

1 double doublesize(double a, double b)
2 {
3 double c;
4 c =2*(a+b)+100;
5 return c;
6 }

>> mex addtiontest.c doublesize.c

組建檔案:addtiontest.mexw64

>> f = addtiontest(1.2,2)

f =

  106.4000

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.