Red de conocimiento informático - Material del sitio web - ¿Cómo utilizar archivos de funciones? mexw32

¿Cómo utilizar archivos de funciones? mexw32

Matlab no puede depurar la función mex en un solo paso y aquí debe depurarse en VS2010.

Consulte los métodos escritos por muchas personas en Internet, todos son complicados y lo he intentado muchas veces sin éxito. Finalmente lo resolví hoy, así que registraré el método.

Función Write Mex usando 1 y VC

Crea un nuevo proyecto win32 dll vacío.

2. Agregue el archivo fuente Test.cpp y escriba la función MEX. El método para escribir funciones MEX no se describirá en detalle aquí.

3. Configurar las propiedades del proyecto.

Abra la página de configuración de propiedades del proyecto, c++-& gt; agregue el directorio de inclusión a la ruta \extern\include en el directorio de instalación de MATLAB.

Conector->;Agregue el directorio de biblioteca adicional a la ruta \extern\lib\win32\microsoft de MATLAB.

Conector->Entrada->Otras dependencias se importan en cuatro archivos lib, a saber, libmx lib eng .

En Linker-General-Output Files: cambiar a.

. \Debug\(ProjectName).mexw32 (cambiar a 64 en consecuencia para sistemas de 64 bits)

Archivo fuente-Agregar-Nuevo elemento Cree un nuevo archivo de definición de módulo Test.def

y agréguelo a su contenido agregado.

Biblioteca; "Prueba"

Exportar mexFunction

Agregar: Test.def en el archivo de definición del módulo de entrada del vinculador.

4.F7 propuso una solución. Si lo anterior es correcto, se generará un archivo (ProjectName).mexw32 en el directorio de depuración del proyecto.

5. Depura la función MEX en VS en un solo paso.

Establezca la carpeta actual de matlab en la ruta donde se encuentra el archivo mexw32, es decir, el directorio de depuración. (Este paso es importante; de ​​lo contrario, la llamada no se podrá depurar).

vs 2010-Tools-Attach to Thread-Select matlab.

Establezca un punto de interrupción en el código fuente Test.cpp

Ingrese el código o función (es decir, el nombre del archivo mexw32, aquí está ProjectName) en el proyecto matlab, y saltará a los puntos de interrupción VS.

Luego presione F10 para avanzar.

6. Cada vez que el archivo cpp donde se encuentra MexFunction debe borrarse en el proyecto matlab antes de volver a compilarlo para generar la solución, es decir,

clear (ProjectName).mexw32

Nota: Esto paso Es muy importante, porque después de llamar a esta función mex, matlab ha sido ocupado y no liberado. Debes averiguarlo antes de volver a compilar en VS.

Bien, puedes seguir el método anterior para escribir una función mex depurable a voluntad.

Después de una depuración exitosa, copie el archivo (ProjectName).mexw32 a cualquier proyecto de Matlab y podrá usarlo como una llamada de función.

[Referencia]

Crear un diagrama esquemático de C++ en 1 y VS2010

2. Escribir y depurar archivos MEX en Matlab.