那你可以用C寫一個mex檔案,然後MATLAB就可以呼叫了。注意門關子程式的宣告;舉例如下,做一個用C寫的加法程式,用matlab來呼叫:#include"mex.h"
voidadd(double*result,double*input1,double*input2){
*result=*input1+*input2;}
voidmexFunction(intnlhs,mxArray*plhs[],
intnrhs,constmxArray*prhs[]) { double*in1,*in2,*res; if(nrhs!=2)
{
mexErrMsgTxt("Twoinputargumentsrequired."); }
elseif(nlhs>1)
mexErrMsgTxt("Toomanyoutputarguments."); } plhs[0]=mxCreateDoubleMatrix(1,1,mxREAL);//éê??ê?3?2?êy????
//??ê?è?ê?3?2?êy????μ?ààDí×?ò???±??? res=mxGetPr(plhs[0]); in1=mxGetPr(prhs[0]); in2=mxGetPr(prhs[1]);
add(res,in1,in2);}
那你可以用C寫一個mex檔案,然後MATLAB就可以呼叫了。注意門關子程式的宣告;舉例如下,做一個用C寫的加法程式,用matlab來呼叫:#include"mex.h"
voidadd(double*result,double*input1,double*input2){
*result=*input1+*input2;}
voidmexFunction(intnlhs,mxArray*plhs[],
intnrhs,constmxArray*prhs[]) { double*in1,*in2,*res; if(nrhs!=2)
{
mexErrMsgTxt("Twoinputargumentsrequired."); }
elseif(nlhs>1)
{
mexErrMsgTxt("Toomanyoutputarguments."); } plhs[0]=mxCreateDoubleMatrix(1,1,mxREAL);//éê??ê?3?2?êy????
//??ê?è?ê?3?2?êy????μ?ààDí×?ò???±??? res=mxGetPr(plhs[0]); in1=mxGetPr(prhs[0]); in2=mxGetPr(prhs[1]);
add(res,in1,in2);}