马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
my_mex.c程序如下:(用于矩阵乘法)
/*File name:mex my_mex*/
#include "matrix.h"
void mat_ply(double *A,double *B,double *C,int m1,int n1,int m2,int n2)
{
int i,j,k,m=0;
for (i=0;i<m1;i++)
{
for (j=0;j<n2;j++)
{
C[j*m1+i]=0;
for (k=0;k<m2;k++)
{
C[j*m1+i]=A[k*m1+i]*B[j*m2+k];
}
}
}
}
/*Interface to Matlab*/
void mexFun(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[])
{
double *Ap,*Bp,*Cp;
int m1,n1,m2,n2;
Ap=mxGetPr(prhs[0]); Bp=mxGetPr(prhs[1]);
m1=mxGetM(prhs[0]); n1=mxGetN(prhs[0]);
m2=mxGetM(prhs[1]); n2=mxGetN(prhs[1]);
prhs[0]=mxCreateDoubleMatrix(m1,n2,mxREAL);
Cp=mxGetPr(plhs[0]);
void mat_ply(Ap,Bp,Cp,m1,n1,m2,n2);
}
编译时,出错如下:
Error my_mex.c: 31 illegal statement termination
Error my_mex.c: 31 skipping `void'
2 errors, 0 warnings
D:\PROGRAM FILES\MATLAB71\BIN\MEX.PL: Error: Compile of 'my_mex.c' failed.
??? Error using ==> mex
Unable to complete successfully
不知是何缘故,我用的LCC C version2.4 作编译器。
请高手指教,谢谢! |