Cómo MFC llama a matlab
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( );