Имя класса MATLAB для данных типа float "single".
В MEX-файле вы могли бы написать:
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;
}
Извлечение его из M-файла в значительной степеникак вызов любой другой функции.Если бы вы назвали MEX-функцию foo
, вы бы назвали ее так:
>> x = foo;
Теперь x
будет содержать значение одинарной точности, эквивалентное single([1 2 3; 4 5 6])
, которое было сохранено в plhs[0]
.