Ich habe diese MEX-Funktion erstellt, die in den Argumenten wie dies geschieht:Warum werden Daten von MATLAB so langsam an mex übergeben?
toSolve(domain, model.one, model.two, model.three, model.four, bc, model.T, model.dt, [start model.five])
Wo model
ist ein MATLAB struct
mit Matrizen one
, two
, three
, five
und eine 1x3-Zelle four
, die drei Matrizen haben.
Die Matrizen sind riesig (~ 500.000 x 3). Wenn ich die Daten in die mex-Funktion übergebe (d. H. toSolve
), dauert es ewig, um geladen zu werden. In meiner mex-Funktion ist die erste Zeile ein Ausdruck:
void
mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[])
{
/* Start */
mexPrintf("\n About to start");
//CODE//
}
Es immer diese Linie About to start
drucken nimmt. Der Code selbst läuft sehr schnell. Ich bin mir nicht sicher, warum es ewig dauert, die Daten in Mex zu übergeben? Was habe ich falsch gemacht?