00001 #include "mex.h"
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 void xtimesy(double x, double *y, double *z, mwSize m, mwSize n)
00016 {
00017 mwSize i,j,count=0;
00018
00019 for (i=0; i<n; i++) {
00020 for (j=0; j<m; j++) {
00021 *(z+count) = x * *(y+count);
00022 count++;
00023 }
00024 }
00025 }
00026
00027
00028 void mexFunction( int nlhs, mxArray *plhs[],
00029 int nrhs, const mxArray *prhs[])
00030 {
00031 double *y,*z;
00032 double x;
00033 mwSize mrows,ncols;
00034
00035
00036
00037
00038
00039
00040 if(nrhs!=2)
00041 mexErrMsgTxt("Two inputs required.");
00042 if(nlhs!=1)
00043 mexErrMsgTxt("One output required.");
00044
00045
00046 if( !mxIsDouble(prhs[0]) || mxIsComplex(prhs[0]) ||
00047 mxGetN(prhs[0])*mxGetM(prhs[0])!=1 ) {
00048 mexErrMsgTxt("Input x must be a scalar.");
00049 }
00050
00051
00052 x = mxGetScalar(prhs[0]);
00053
00054
00055 y = mxGetPr(prhs[1]);
00056
00057
00058 mrows = mxGetM(prhs[1]);
00059 ncols = mxGetN(prhs[1]);
00060
00061
00062 plhs[0] = mxCreateDoubleMatrix(mrows,ncols, mxREAL);
00063
00064
00065 z = mxGetPr(plhs[0]);
00066
00067
00068 xtimesy(x,y,z,mrows,ncols);
00069
00070 }