当前位置: 首页 > news >正文

凡科删除建设的网站自助建站免费建站平台

凡科删除建设的网站,自助建站免费建站平台,建筑八大员报名官网,网推接单网网络上许多vc调用matlab的dll的方法使用的都是单值传递参数,但在许多情况下,我们并不能确定要传递的参数的大小,那么这个问题如何解决那?我想大家一定想到了使用指针和动态数组,是的,就是这样解决。第一步将…

网络上许多vc++调用matlab

的dll的方法使用的都是单值传递参数,但在许多情况下,我们并不能确定要传递的参数的大小,那么这个问题如何解决那?我想大家一定想到了使用指针和动态数组,是的,就是这样解决。

第一步将你的matlab程序编译生dll,这个过程有许多的参考资料,这里我就不再赘述了。

第二部贴一些实际的代码来个大家分析一下:

我做的是一个求农业上的期望产量与趋势产量的实际应用,从1971年开始年序为1,作为x轴,产量作为y轴,使用曲线拟合出产量的趋势走向,虽然我的数值分析学的也很不错,但是为了减少开发成本,我还是使用了matlab作为开发次拟合曲线的饿工具,即快又准,与农业专家使用其他工具拟合的曲线十分接近(一公顷的误差在10公斤以下)。下面是一些具体的代码:

yy=Fun_NX(1971,year);//获得用户给定年的年序,1971年开始为1

double k=3;//上包络产量要求三次是三次拟合函数

double *x=new double[m];//声明动态double数组x

double *y=new double[m];//声明动态double数组y

//进行内存拷贝,这里需要注意的是,我一开始使用的是首地址赋值的方式,虽然可以完成设计任务,但是在调试

//的时候发现内存泄露,delete无法很好地产出x,y变量

memcpy(x,Fun_Year(1971,end_year,region),m*sizeof(double));//将获得的上包络年序数组头指针赋值给x

memcpy(y,Fun_Yield(1971,end_year,region),m*sizeof(double));//将获得的上包络年序数组头指针赋值给y

double result[4]={0,0,0,0};//用于记录三次曲线拟合的四个参数

CString str;

mxArray

*b_x=mclGetUninitializedArray();//年,1971是为1每过一年加1,如1972年对应2

mxArray *b_y=mclGetUninitializedArray();//该年产量

mxArray *n=mclGetUninitializedArray();//线性拟合最高次,这里将k复制给n

mxArray

*p=mclGetUninitializedArray();//期望用p获得拟合函数mlfQxnh(b_x,b_y,n)的返回值

mlfAssign(&b_x,mlfDoubleMatrix(1,m,x,NULL));//matlab与vc++混合编程将double类型的x数组转化为mxArray

类型的b_x,并赋值

mlfAssign(&b_y,mlfDoubleMatrix(1,m,y,NULL));//matlab与vc++混合编程将double类型的y数组转化为mxArray

类型的b_y,并赋值

mlfAssign(&n,mlfDoubleMatrix(1,1,&k,NULL));//matlab与vc++混合编程将double类型的k转化为mxArray

类型的n,并赋值

//

将mlfQxnh(b_x,b_y,n)函数的返回值地址返回给指针p,此时的指针p为mxArray,我们无法在一般数据类型中使

//用,所以,还要将其赋值给一个常规的类型,我这里赋值给了double类型的指针pp

mlfAssign(&p,mlfQxnh(b_x,b_y,n));

//将mxArray类型p指针复制给指针pp

double *pp=mxGetPr(p);

//使用result获得返回值拟合曲线的系数,三次方的系数为:result[0],依次类推

k=(int) k;//将k强制转换为整形

for(i=0;i<=k;i++)

result[i]=pp[i];//使用result[]记录pp[]的值

//释放变量b_x,b_y,n,p,y,x

mxDestroyArray(b_x);

mxDestroyArray(b_y);

mxDestroyArray(n);

mxDestroyArray(p);

delete y;

delete x;

//返回最终预测产量

for(i=0;i<=k;i++)

sum=sum+result[i]*pow(yy,k-i);

return sum;

这样,就调用了一个dll返回的动态数组。

http://www.lbrq.cn/news/2702467.html

相关文章:

  • 建设一个公司网站需要多少钱网站运营推广方案
  • asp.net 网站管理系统百度地图推广
  • 那个可以做棋牌网站seo关键词教程
  • 注册公司需要的网站建设百度网站收录链接提交
  • 广州做网络服装的网站建设关键词的分类和优化
  • 网站友情链接怎么做国内高清视频素材网站推荐
  • 网站建设 地址 昌乐站长工具介绍
  • 宁夏网站建设一条龙计算机培训机构
  • 杭州网站建设品牌推广一款app的营销方案
  • 遵义网站搭建公司哪家好网站建设选亿企网络
  • 巴中网站建设培训班百度分析
  • 网站建设与管理自简历网站建设平台
  • 提升网站权重禁止搜索引擎收录的方法
  • 美食网站要怎么做南京seo
  • 国际贸易英文网站优化网站的步骤
  • 中国各大网站排名网络推广免费网站
  • 石家庄做网站价格谷歌google play官网
  • 个人网站网站建设百度一下网页版搜索引擎
  • 网上推广赌博seo在哪学
  • 大学网站建设招标方案长沙网络推广小公司
  • 漳州 外贸网站建设 SEO广州百度搜索排名优化
  • 新疆建设网二级域名网站青岛网站建设推广公司
  • 泰安网站建设51baiduaso搜索优化
  • 网络营销方案撰写的内容与要求360网站关键词排名优化
  • wordpress多程序用户同步苏州排名搜索优化
  • 网站建设毕业设计中期报告广告软文怎么写
  • 有人知道做网站吗?nba最新交易汇总实时更新
  • 做网站php的作用活动推广宣传方案
  • 淘宝客网站建设教程上海网站优化公司
  • sw网站建设网络营销策划书结构
  • 嵌入式第二十七天(UI相关技术(framebuffer))
  • 【SpringBoot系列-02】自动配置机制源码剖析
  • C++ 面向对象四大特性:面试深度解析
  • 还在用PUT更新局部数据?Jakarta REST 4.0 的“合并补丁”,优雅!
  • Agent智能体基础
  • scikit-learn/sklearn学习|岭回归解读