2011-05-10 13 views

Respuesta

8

El nombre de clase de MATLAB para datos de tipo flotante es "único".

En el archivo-MEX se podría escribir:

void mexFunction(int nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[]) 
{ 
    // Create a 2-by-3 real float 
    plhs[0] = mxCreateNumericMatrix(2, 3, mxSINGLE_CLASS, mxREAL); 

    // fill in plhs[0] to contain the same as single([1 2 3; 4 5 6]); 
    float * data = (float *) mxGetData(plhs[0]); 
    data[0] = 1; data[1] = 4; data[2] = 2; 
    data[3] = 5; data[4] = 3; data[5] = 6; 
} 

recuperarlo del archivo-m es más o menos como llamar a cualquier otra función. Si usted nombró el MEX-función foo, que se dice así:

>> x = foo; 

Ahora x contendría el valor de precisión simple equivalente a single([1 2 3; 4 5 6]) que se almacena en plhs[0].

+0

¡Muchas gracias por la explicación simple y el ejemplo de código! – drox

+0

+1 para una respuesta agradable y elegante! – Shai

Cuestiones relacionadas