You are on page 1of 3

5/27/2017 MATLABCHomepageofXiaofengZhu

ChineseResearchPages>Matlab>

MATLAB C
MATLAB
CMATLAB
CCC
MATLABMATLABCMEX

Cadd()MATLABc=add(a,b)ab

c=a+b

1.MATLABadd.c
2.Cadd()
3.mexFuncion()CMATLAB
4.MATLABadd.cMEX
5.MATLABadd()

add.c

SourceMEXFile

1.NewFileScript
2.add.c
3.add.c

add.c

MATLABmex.hinclude

1#include"mex.h"

1doubleadd(doublex,doubley){
2returnx+y
3}

ComputationalRoutine

MATLABMEXmexFunction()C
main()MEXmain()mexFunction()

mexFunction:

1voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[]){
2//
3}
https://sites.google.com/site/seanzhuxf/personalpage/matlab/mex 1/3
5/27/2017 MATLABCHomepageofXiaofengZhu

nlhs(numberoflefthandside)nrhs(numberofrighthandside)
c=add(a,b)nlhs=1hrhs=2

plhs[]prhs[]
mxArraymxArrayMATLABMATLAB

prhs[]prhs[0]aprhs[1]b*(prhs[0])a
prhs[0]mxArray
(Scalar)mxGetScalar()

1doublea,b
2a=mxGetScalar(prhs[0])
3b=mxGetScalar(prhs[1])

plhsplhs[0]c=add(a,b)cc
mxArraymxArraymxCreateDoubleMatrix()
mxArray

1plhs[0]=mxCreateDoubleMatrix(1,1,mxREAL)

(1,1,mxREAL)cMATLABc11

mxGetPr()plhs[0]mxArraydouble

1double*c
2c=mxGetPr(plhs[0])

add()

1*c=add(a,b)

1 #include"mex.h"
2
3 doubleadd(doublex,doubley){
4 returnx+y
5 }
6
7 voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[]){
8 doublea,b
9 a=mxGetScalar(prhs[0])
10b=mxGetScalar(prhs[1])
11
12plhs[0]=mxCreateDoubleMatrix(1,1,mxREAL)
13
14double*c
15c=mxGetPr(plhs[0])
16
17*c=add(a,b)
18}

https://sites.google.com/site/seanzhuxf/personalpage/matlab/mex 2/3
5/27/2017 MATLABCHomepageofXiaofengZhu

add.cMEX

MATLAB

1mexadd.c

MATLABMEX
MACOSXgcc4.0CommandnotfoundXcode

c=add(a,b)

MATLAB

1c=add(1,2)

mbuildsetup

mexc

Comments

Youdonothavepermissiontoaddcomments.

Signin | RecentSiteActivity | ReportAbuse | PrintPage | PoweredBy GoogleSites

https://sites.google.com/site/seanzhuxf/personalpage/matlab/mex 3/3

You might also like