Ich bin ein mex Code zu schreiben und ich denke, dass ich nicht Gedächtnis bin mit sehr effizient. Hier ist was ich tue. Ich Zuteilung für Variablenspeicher wieBefreien Speicher in mex Code
riefout=mxMalloc(sizeof(double)*N);
plhs[0]=mxCreateDoubleMatrix(1,N,mxREAL);
set(plhs[0],out);
Das Problem ist, dass ich nicht bin Speicher zu befreien, die ich für Variable zuweisen, weil, wenn ich tun werde ich Segmentierung Fehler erhalten, da ich es in Matlab verwenden. Kann mir jemand eine bessere Technik vorschlagen, um die obigen Befehle auszuführen? Gibt es sowieso Speicherplatz um Speicher frei zu machen oder um eine Matrix der Länge 1X N zu vermeiden?
Danke.
Denken Sie daran, wir wollen den PLHs [0] zuweisen, was Sie geschrieben haben, scheint mir, dass wir plhs [0 [und Ausgabe darauf zeigt. in meinem Fall ist der Vektor der Daten 1XN und ich versuche es zu plhs [0] zuzuweisen, das ist meine Matlab-Ausgabe. Können Sie Ihre Antwort näher erläutern und können Sie mir auch sagen, ob Ihre Ausgabe und meine Ausgabe identisch sind? – justin
@justin Sorry, ich meinte 'raus'. Sie können 'out' am Anfang zuweisen (mit' mxCreateDoubleMatrix' und dann in den Rest Ihrer mex-Datei einfügen. Es ist nicht notwendig, es separat zuzuweisen. – Suever