VC调用matlab进行曲线拟合
时间:2011-12-13
来源:互联网
有没有人尝试过啊?请赐教一下。试了好多次结果都不对
作者: c415415 发布时间: 2011-12-13
[code=C/C++][/code]
Engine *ep;
mxArray *T=NULL;
mxArray *X=NULL;
mxArray *xx=NULL;
double ans[4];
if(!(ep=engOpen(NULL)))
{
AfxMessageBox("error");
exit(-1);
}
T=mxCreateDoubleMatrix(100,3,mxREAL);
X=mxCreateDoubleMatrix(1,4,mxREAL);
memcpy((char*)mxGetPr(T),(char*)data,100*3*sizeof(double));
engPutVariable(ep,"T",T);
engPutVariable(ep,"X",X);
engEvalString(ep,"init=[2700 -2700 200 350];");
engEvalString(ep,"options=optimset('largescale','on','LevenbergMarquardt','on','Display','Iter','TolFun',1e-12,'TolX',1e-10,'MaxFunEvals',1e+6,'MaxIter',10000);");
engEvalString(ep,"[X,resnorm] = lsqnonlin(@(X)sphere_fun(X,T),init,[0 -1e4 0 0],[3e5 500 500 500],options)");
xx=engGetVariable(ep,"X");
memcpy((char*)ans,(char*)mxGetPr(xx),4*sizeof(double));
engClose(ep);
Engine *ep;
mxArray *T=NULL;
mxArray *X=NULL;
mxArray *xx=NULL;
double ans[4];
if(!(ep=engOpen(NULL)))
{
AfxMessageBox("error");
exit(-1);
}
T=mxCreateDoubleMatrix(100,3,mxREAL);
X=mxCreateDoubleMatrix(1,4,mxREAL);
memcpy((char*)mxGetPr(T),(char*)data,100*3*sizeof(double));
engPutVariable(ep,"T",T);
engPutVariable(ep,"X",X);
engEvalString(ep,"init=[2700 -2700 200 350];");
engEvalString(ep,"options=optimset('largescale','on','LevenbergMarquardt','on','Display','Iter','TolFun',1e-12,'TolX',1e-10,'MaxFunEvals',1e+6,'MaxIter',10000);");
engEvalString(ep,"[X,resnorm] = lsqnonlin(@(X)sphere_fun(X,T),init,[0 -1e4 0 0],[3e5 500 500 500],options)");
xx=engGetVariable(ep,"X");
memcpy((char*)ans,(char*)mxGetPr(xx),4*sizeof(double));
engClose(ep);
作者: c415415 发布时间: 2011-12-15
其中data是我存放数据的那个数组,第一列放的x坐标,第二列放的y坐标,第三列放的z坐标。我想通过matlab拟合出一个球面(单独使用matlab时没有出现任何问题),但是与vc混编后就不行了。另外sphere_fun函数是我自己定义的,应该已经被调用到了,因为我单步调试时若修改sphere_fun会有变化。
现在我真的不知道问题出在哪里啊,郁闷死了。求指教。
现在我真的不知道问题出在哪里啊,郁闷死了。求指教。
作者: c415415 发布时间: 2011-12-15
X数组用于存放拟合结果(matlab中)的4个参数:球心坐标x,y,z和球的半径r。ans[4]数组则用于存放X的数据
作者: c415415 发布时间: 2011-12-15
这个没试过,只画过表格。。
楼主要是把问题解决了
顺便给教下我,谢谢了!!
楼主要是把问题解决了
顺便给教下我,谢谢了!!
作者: jaynaviee 发布时间: 2011-12-15
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28