Problem with MexFunction and MexGetPr
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Michael Negosanti
le 14 Juil 2019
Modifié(e) : James Tursa
le 15 Juil 2019
Good morning,
I can't solve the problem of assignment from incompatible pointer type for the x and y pointer. The error that develops in Matlab, could be caused by the wrong use of the mxGetPr function for the x and y matrix pointers, but I don't know how to proceed.
Someone could give me directions.
thank you.
void mexFunction( int nlhs, mxArray *plhs[],int nrhs, const mxArray*prhs[] )
{
double **x;
double *z;
double *p;
double **y;
int i = 2;
int j = 5;
plhs[0]= mxCreateDoubleMatrix((mwSize)i, (mwSize)j, mxREAL);
x = mxGetPr(prhs[0]);
z = mxGetPr(prhs[1]);
p =mxGetPr(prhs[2]);
y = mxGetPr(plhs[0]);
functionsum(y,x,z,p);
return;
}
0 commentaires
Réponse acceptée
James Tursa
le 15 Juil 2019
Modifié(e) : James Tursa
le 15 Juil 2019
Impossible to answer without seeing the code for the functionsum( ) function. Maybe you could post that? Maybe all you need to do is this (but this is just a guess w/o seeing your code):
double *x;
double *z;
double *p;
double *y;
What version of MATLAB are you using?
Btw, you don't need to explicitly cast the i and j arguments since C has automatic type promotion. This would suffice:
plhs[0]= mxCreateDoubleMatrix( i, j, mxREAL);
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Write C Functions Callable from MATLAB (MEX Files) dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!