當前位置:編程學習大全網 - 源碼下載 - MFC怎樣調用matlab

MFC怎樣調用matlab

首先在matlab裏新建壹個產生figure的m文件hFig.m:function hFig()

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

axis([0 1 0 1]);

(1)設定matlab環境: mex –setup mbuild –setup

(2)將m文件編譯生成.dll .lib .h

mcc –B cpplib:libhFig hFig.m

(如果m文件中含有eval函數,則該eval函數中調用的函數(假設為evalfun)必須提前聲明強制關聯, 即在主函數體最開始處添加 %# evalfun)

(支持向量分類機需添加:%#function code_OneVsOne

%#function crossvalidatelssvm

%#function misclass

%#function code

%#function codedist_hamming

支持向量回歸機需添加:%#function leaveoneoutlssvm

%#function mse

%#function gridsearch

%#function code

%#function codedist_hamming)

(3)設定VS2008環境:工具-選項-項目和解決方案-VC++目錄

添加包含文件路徑:。。。matlab\extern\include

添加庫文件路徑:。。。matlab\extern\lib

鏈接器-輸入-附加依賴項:mclmcrrt.lib libhFig.lib

鏈接器-常規-附加庫目錄:。。。matlab\extern\lib\win32\microsoft

(VS2010:VC++目錄在項目-屬性-配置屬性裏)

(4)將生成的.lib .dll .h文件拷貝到MFC工程源文件目錄,並將.h文件添加進解決方案

在源代碼裏添加:#include "libhFig.h"

對MCR及生成的庫進行初始化

在CMyView::OnInitUpdate()裏添加

if (!mclInitializeApplication(NULL,0))

{

AfxMessageBox(_T("Initialize Error!"));

return;

}

libhFigInitialize();

(5) 在需要處調用hFig.m函數(盡量使用try應付突發異常)

try

{

hFig();

}

catch (const mwException& erro)

{

CString str;

str = erro.what();

AfxMessageBox(str,NULL,NULL);

}

(6) 退出時釋放調用的庫

重寫DestroyWindow(),添加

libhFigTerminate();

mclTerminateApplication();

  • 上一篇:如何熬過第壹城的摩托追逐?
  • 下一篇:Android內核分析簡介
  • copyright 2024編程學習大全網