Red de conocimiento informático - Aprendizaje de programación - Cómo MFC llama a matlab

Cómo MFC llama a matlab

Primero, cree un nuevo archivo m hFig.m en matlab y genere una figura: function hFig()

figure('NumberTitle','off','MenuBar','none','ToolBar', 'none','Name','fig');

(1) Configurar el entorno matlab

(1) Configurar el entorno matlab

<; p>(1) Configure el entorno matlab.

);

axis([0 1 0 1]);

(1) Configurar el entorno matlab: mex -setup mbuild -setup

(2 ) Compile el archivo m para generar un .dll .lib .h

mcc -B cpplib:libhFig hFig.m

(Si el archivo m contiene una función de evaluación, la función ( se supone que es evalfun) debe declararse como obligatorio de antemano, es decir,

(el clasificador de vectores de soporte debe agregar: %#function code_OneVsOne

%#function crossvalidatessvm

%#function misclass

%#function code

%#function codedist_hamming

Es necesario agregar el regresor del vector de soporte: %#function Leaveoneoutlssvm

%#función mse

%#función gridsearch

%#código de función

%#función codedist_hamming)

( 3 ) Configure el entorno VS2008: Herramientas-Opciones-Proyectos y Soluciones-Catálogo VC++

Agregue la ruta del archivo de inclusión: matlab\extern\include

Agregue la ruta del archivo de la biblioteca: . matlab\ extern\lib

Dependencias adicionales de entrada del vinculador: mclmcrrt.lib libhFig.lib

Directorio de biblioteca adicional general del vinculador:..matlab\extern\lib\. win32\microsoft

(VS2010: el directorio VC++ se encuentra en Propiedades del proyecto-Propiedades de configuración)

(4) Copie el archivo .lib .dll .h generado en la fuente del proyecto MFC directorio de códigos y agregue el archivo .h a la solución

En Agregar: #include "libhFig.h"

Inicialice MCR y la biblioteca generada

En CMyView:: OnInitUpdate()

if (!mclInitializeApplication(NULL,0))

{

if (! mclInitializeApplication(NULL,0))

{

AfxMessageBox(_T("¡Error de inicialización!"));

return;

}

libhFigInitialize();

(5) Llame a la función hFig.m cuando sea necesario (intente usar try para manejar excepciones inesperadas)

try

{

hFig();

}

catch (const mwException& erro)

{

CString str;

str = erro.what();

AfxMessageBox(str,NULL,NULL);

}

(6) Libere la biblioteca llamada al salir

Anule DestroyWindow() para agregar

libhFigTerminate();

mclTerminateApplication( );