Tabla de contenido:
- Paso 1: el código
- Paso 2: Este es el código, NO COPIAR NI PEGAR
- Paso 3: si por alguna razón no se compila
Video: Hacer un archivo MEX de Matlab: 3 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
Instrucciones sobre cómo integrar código C compilado con Matlab. MEX son las siglas de MATLAB Executable. Los archivos MEX son subrutinas vinculadas dinámicamente producidas a partir del código fuente de C o Fortran que, cuando se compilan, se pueden ejecutar desde MATLAB de la misma manera que los archivos M de MATLAB o las funciones integradas. Las funciones de la interfaz externa brindan funcionalidad para transferir datos entre archivos MEX y MATLAB, y la capacidad de llamar a funciones de MATLAB desde código C o Fortran. Aquí le mostraré todo lo que necesita para crear rápidamente un archivo mex útil. necesita: = un editor de texto = matlab 6.1 o superior (las versiones anteriores también pueden hacer archivos mex pero un formato ligeramente diferente) = matlab tiene su propio compilador c que viene con él, pero utilicé el compilador visual c ++ porque lo tenía.
Paso 1: el código
descarga el archivo que adjunto: mextest1p0.cpp
cpp significa c ++ ……… Esto es lo que hace el código: ……… se necesita un número que se envía desde el símbolo del sistema de matlab. Imprime "hola mundo" en matlab devuelve dos argumentos a matlab, una matriz de números de dos elementos y una cadena el primer elemento de la matriz de números devueltos es 1 + el número que le envió el segundo elemento de la matriz de números devueltos es 2 + el número que lo envió ………. Así es como implementarlo: ………… guarde el archivo en su computadora inicie matlab navegue en matlab hasta el directorio donde está el archivo luego siga las instrucciones de compilación y ejecución en la parte superior de la Archivo.cpp. No puedo escribir estas instrucciones aquí porque instructables edita automáticamente los comandos y hace que aparezcan incorrectamente. En la imagen de abajo puede ver el código funcionando. No se preocupe por la "advertencia de la línea de comandos", no parece tener ningún efecto. Observe que en el lado izquierdo, el directorio actual contiene el archivo.cpp. A la derecha puede verme compilando el código y luego ejecutándolo desde matlab. Lea el archivo en su editor de texto (por ejemplo, el bloc de notas en Windows), está muy bien documentado y se explica por sí mismo, podrá hacer casi todo lo que necesite siguiendo las convenciones del código (es decir, copiarlo, pegarlo y hacer ligeras modificaciones) ############################################# ########################################################################################################################################################################################################################################################################################################. La página siguiente NO FUNCIONARÁ, TIENE QUE DESCARGAR EL ARCHIVO que adjunto en lugar de copiar y pegar este. ################################################ ######################
Paso 2: Este es el código, NO COPIAR NI PEGAR
################################################ #################### …….. NOTE ……..debido a una molesta edición automática que hacen los instructables, el código como se ve en esta página NO SERÁ TRABAJA, TIENES QUE DESCARGAR EL ARCHIVO que adjunto en lugar de copiar y pegar esto. ################################ ##################################### // Esto fue escrito en c ++ por leevonk // es código para un archivo matlab mex // el código tomará un valor numérico y generará dos valores numéricos // los dos números de salida se calculan a partir del número de entrada // el código también generará un valor de cadena // el código generará también imprime "hola mundo" #include "mex.h" void mexFunction (int nlhs, mxArray * plhs , int nrhs, mxArray * prhs ) {// ############# ############################ // ####### - imprimir "hola mundo" - ### ######### // ##################################### ### mexPrintf ("Hola mundo"); // ################################### ##### // ######## - Obtener material de Matlab - ######### // ################ ########################## / * declarar una variable de matriz para contener los valores entrantes * / double * InValues; / * obtener los valores enviados desde matlab * / InValues = mxGetPr (prhs [0]); / * para usar estos valores que fueron enviados desde matlab, haga InValues [0], InValue [1], etca de acuerdo con la cantidad de valores que haya. Los InValues se utilizarán a continuación * /// ###################################### ## // ######## - Devuelve una matriz de números - ######### // ################## ###################### / * declara la matriz que se enviará a matlab (el * lo convierte en una matriz) * / double * OutValues; / * Crear / asignar argumento de retorno, una matriz 1x2 (1 fila 2 columna) para el primer espacio de la matriz de retorno (plhs [0]) * / plhs [0] = mxCreateDoubleMatrix (1, 2, mxREAL); / * Obtener puntero al argumento de retorno * / OutValues = mxGetPr (plhs [0]); / * asigna valores a OutValues que residirán en la primera ranura de la matriz de retorno, aquí estamos usando InValues para computar los OutValues * / OutValues [0] = InValues [0] + 1; OutValues [1] = InValues [0] + 2; // ######################################## // ########### - Devuelve una cadena - ############# // ################ ######################### / * declara la variable de cadena que se enviará a matlab * / char * str; / * asigna un valor al string * / str = "byebye"; / * poner la cadena en la segunda ranura de las matrices de retorno (plhs [1]) * / plhs [1] = mxCreateString (str); // ########## ##################################//###########--regreso mas cosas--############//################################ ############ / * para devolver más cosas, sigue las reglas generales anteriores pero pon las cosas en otros espacios de plhs, plhs [un número] * /}
Paso 3: si por alguna razón no se compila
Si por alguna razón no se compila (debería, funciona bien en mi computadora) veo estos recursos, es de donde aprendí. Tienen pequeños fallos (el uso de gramática antigua, no funcional, etc.) pero si va y viene entre los dos debería poder improvisar algo que funcione. Documentation / Calcul / matlab5v11 / docs / 00009 / 009a1.htmhttps://cnx.org/content/m12348/latest/
Recomendado:
Arduino como ISP -- Grabar archivo hexadecimal en AVR -- Fusible en AVR -- Arduino como programador: 10 pasos
Arduino como ISP || Grabar archivo hexadecimal en AVR || Fusible en AVR || Arduino como programador: ……………………… SUSCRÍBETE A mi canal de YouTube para ver más videos …….. Este artículo se trata de arduino como isp. Si desea cargar un archivo hexadecimal o si desea configurar su fusible en AVR, entonces no necesita comprar un programador, puede hacerlo
Cómo hacer un archivo exe: 3 pasos
Cómo hacer un archivo Exe: Hola, te enseñaré cómo hacer un archivo ejecutable. (también conocidos como archivos.exe) Esto no requiere ningún tipo de codificación. Simplemente falsifique el instalador. Los enlaces se proporcionarán aquí: InstallForge Entonces, sin más preámbulos, le enseñaré cómo crear un archivo a.exe
¡Convierta (casi) cualquier archivo multimedia en (casi) cualquier otro archivo multimedia gratis !: 4 pasos
¡Convierta (solo aproximadamente) cualquier archivo multimedia en (solo aproximadamente) cualquier otro archivo multimedia gratis !: Mi primer instructivo, ¡salud! De todos modos, estaba en Google buscando un programa gratuito que convertiría mis archivos Youtube.flv a un formato que es más universal, como.wmv o.mov. Busqué en innumerables foros y sitios web y luego encontré un programa llamado
Cómo hacer un archivo de matriz por lotes: 3 pasos
Cómo hacer un archivo por lotes de Matrix: Este archivo por lotes dará números verdes aleatorios que se asemejan al fondo de "The Matrix", realmente no tiene sentido, excepto para verse bien
Cómo hacer un GIF animado a partir de un archivo de video usando solo software gratuito: 4 pasos
Cómo hacer un GIF animado a partir de un archivo de video usando solo software gratuito: para aquellos de ustedes que no saben, un GIF es el formato de imagen más utilizado que admite varios fotogramas en una presentación de diapositivas o animación. en otras palabras, puedes poner videos cortos donde normalmente solo van las imágenes. Quería hacer un GIF con un clip de video