精通VC与MATLAB联合编程<十>——综合举例二
2007-03-15 21:53:39 来源:WEB开发网核心提示: if(FAILED(CoInitialize(NULL)))//COM初始化{MessageBox("Error");}ISJHSJY *pclass=NULL;HRESULT hr=CoCreateInstance(CLSID_SJHSJY,NULL, CLSCTX_
if(FAILED(CoInitialize(NULL)))//COM初始化
{MessageBox("Error");
}
ISJHSJY *pclass=NULL;
HRESULT hr=CoCreateInstance(CLSID_SJHSJY,NULL, CLSCTX_ALL, IID_ISJHSJY, (void **)&pclass);
if(SUCCEEDED(hr))
{
long int u=6;
HRESULT hr1=pclass->sjhsjy(u,&w1,&b1,&w2,&b2,&et,&a2,PP,TTT,me,eg,lr,P2,T2,S1);//函数调用
if(!SUCCEEDED(hr1)){MessageBox("请输入正确数据");return;}//函数调用失败
if(SUCCEEDED(hr1))
{
memcpy(W1,w1.parray->pvData,420*sizeof(double));//将Variant型结果数据转换成double型
memcpy(W2,w2.parray->pvData,240*sizeof(double));
memcpy(B1,b1.parray->pvData,60*sizeof(double));
memcpy(B2,b2.parray->pvData,4*sizeof(double));
memcpy(ET,et.parray->pvData,4*sizeof(double));
memcpy(A2,a2.parray->pvData,4*sizeof(double));
m_edit7.Format("%f
%f
%f
%f
",ET[0],ET[1],ET[2],ET[3]);
}
}
else {MessageBox("COM组件调用失败!","提示",MB_ICONHAND);exit(0);}//COM组件调用失败
pclass->Release();
CoUninitialize();//结束COM
7、程序运行结果:图3
图4
图5
图6
图7
图8
本程序界面采用VC编写,算法调用的是MATLAB神经网络工具箱,通过打包,能在没有安装MATLAB的机器上安装运行,安装文件仅3M,虽MATLAB也有神经网络GUI,但是不能脱离MATLAB环境,通过在VC中调用MATLAB,即能够充分利用VC建立友好的界面,又可以利用MATLAB避免编写复杂的算法,大大提高编程效率。本人的QQ:44760299。目前也还在学习中欢迎大家一起讨论。
更多精彩
赞助商链接