c++调用matlab引擎solve()函数时,无法从matlab中读取正确结果

coco_tree coco_tree 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
64位Windows10系统,用vs2010调用matlab R2015a引擎(调试用的是Release下Win32模式),可以正确读取fsolve()函数的计算结果,但是不能正确读取solve()函数的计算结果。
代码见下文,其中注释掉的部分是调用fsolve()函数的过程,可以正确运行;但是替换成调用solve()函数时,结果不正确。附的图片是调用solve()函数的计算结果:
#include <iostream>
#include <math.h>
#include <mex.h>
#include <engine.h>
#include <matrix.h>
#include <vector>
#pragma comment(lib, "libmx.lib")
#pragma comment (lib, "libmat.lib")
#pragma comment(lib,"libeng.lib")
#pragma comment(lib,"libmex.lib")

using namespace std;

int main()
{
Engine* eng;
if (!(eng=engOpen(NULL)))
{
cout<<endl<<"Error"<<endl;
exit(1);
}
int num=2;
mxArray* p_result_matlab=mxCreateDoubleMatrix(1*num,1,mxREAL);
double *pc;

/*engEvalString(eng,"fs=@(x)([2*x(1)-x(2)-exp(-x(1));x(1)+2*x(2)-exp(-x(2))]);");
engEvalString(eng,"x0=[1;1];");
engEvalString(eng,"x=fsolve(fs,x0)");*/
engEvalString(eng,"fs=@(x)(x.^2-2*x.+1);");
engEvalString(eng,"x=solve(fs)");
p_result_matlab=engGetVariable(eng,"x");
pc=mxGetPr(p_result_matlab);
for (int i=0;i<1*num;i++)
{
cout<<pc[i]<<endl;
}
mxDestroyArray(p_result_matlab);
engClose(eng);
return 0;
}

...全文

相关推荐

隐式格式的MATLAB代码-lp_solve:从macOs/Linux的源代码构建lp_solve;lp_solve是一个混合整数线性规划求解

一旦模型构建完成,你可以通过调用lp_solve的MATLAB函数来求解。

weixin_38613154

Genesis物理引擎C++实战:从编译配置到实时求解器调优

物理仿真引擎是机器人控制、运动规划与可解释动力学建模的核心基础设施。其本质是基于牛顿-欧拉方程或拉格朗日形式的数值求解系统,依赖精确的碰撞检测、约束求解与时间积分算法。技术价值在于提供确定性、可调试、低延迟的刚体动力学行为,支撑高保真仿真验证。典型应用场景包括四足机器人斜坡打滑分析、双摆混沌轨迹复现、AGV车队调度仿真等对物理可信度要求严苛的工程领域。本文聚焦Genesis Physics Engine这一轻量级C++物理求解器,深入解析其零依赖架构、坐标系对齐机制与实时求解器配置策略,覆盖源码编译、刚体初

weixin_33690367

高考数学AI解题实战:Gemini与Deepseek的Matlab代码可靠性对比

AI辅助数学解题已从概念走向课堂落地,其核心在于将自然语言题干准确转化为可执行、可验证的Matlab代码。这涉及语义理解、解法映射与代码鲁棒性三层能力,远超通用大模型的问答范畴。Gemini在题干解析与符号约束识别上表现稳定,Deepseek则在复杂符号推导中展现更强算力,但二者均面临Matlab版本兼容性、API可用性及服务稳定性等工程挑战。教育场景下,“可运行的正确答案”比“理论上最优解”更具教学价值。本文聚焦高考数学典型题型,结合DeepAI平台编排、本地Matlab验证与版本适配实践,系统揭示AI生

weixin_33834628

lp_solve_5.5.2.5_MATLAB_exe_win32.zip

- MATLAB编程:编写和运行MATLAB脚本,调用外部库。- lp_solve接口:学习如何在MATLAB中与lp_solve优化引擎交互,例如设置问题、指定约束、读取结果。

bboubaj

最大最小值零点问题的matlab代码-lp_solve:用CMake构建lp_solve

**注意事项**: - 安装和配置`lp_solve`时,确保路径设置正确,以便MATLAB和CMake能够找到相关库。

weixin_38630324
评论 8
收藏 已收藏
分享
返回顶部
coco_tree
其它技术问题 3,881 成员 9,044 内容