Bonjour tout le monde !
j'aurais besoin d'un conseil pour la récupération d'arguments en mex ( entre le cpp et matlab).
Dans mon 2ème argument, quand j'appelle la fonction j'ai quelque chose du genre :
{2, [5:12]} ou {3, [ ] , [1:5] } ou {{4,6}, [1:5],{1,8,9},[3:6]}. Quand je lance la fonction sur matlab, je retrouve bien mon tableau plhs[2] qui est affiché.
Mon problème est que je voudrais extraire les données , pour pouvoir les traiter ensuite. Je sais qu'il faut utiliser un pointeur, avec mxGetPr ou mxGetData, mais j'ai beau essayer tous les moyens (sauf le bon), le mieux que j'arrive à afficher ne correspond pas du tout aux valeurs...
Code C/C++ :
void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
const char *filename = mxArrayToString( prhs[0] );
/* traitements sur le fichier */
if(nrhs==2)
{
mxArray * extraits= mxDuplicateArray(prhs[1]);
int n = mxGetN(extraits);
double * a= mxGetPr(extraits);
/* Traitement qui manque !!!! */
if(n>ind_dim_order)
{
cerr<<"Nombre de dimensions voulues superieur a celui du fichier"<<endl;
cerr<<"Toutes les valeurs sont retournees"<<endl;
}
plhs[2]=extraits;
}
Help !!!
