在C语言编程中,如何调用MATLAB的绘图功能?
已知一套C语言示例源代码,该程序运转后,将形成一个十进制的数据链,前后相连形成闭环的最短路径。请问如果以该C程序为基础,怎样调用MATLAB的绘图功能,才能使该程序同时生...
已知一套C语言示例源代码,该程序运转后,将形成一个十进制的数据链,前后相连形成闭环的最短路径。请问如果以该C程序为基础,怎样调用MATLAB的绘图功能,才能使该程序同时生成相应的二维图、三维图?因为该C源程序的内容超过了《百度知道》篇幅所限,因此只能单独把该代码发给有能力解答该问题的网友。
展开
2个回答
推荐于2018-03-23 · 知道合伙人数码行家
关注
展开全部
一、调用Matlab引擎
调用Matlab引擎可以在WIN32、MFC中使用,它的原理实际上相当于打开一个精简版的Matlab然后往里面输命令。下面是调用Matlab中的加法程序add.m的例子。
先在Matlab的work目录下创建add.m文件并编写程序如下:
function s = add (a, b) s = a+b;在C程序中,首先打开精简版的Matlab
Engine *ep = engOpen (NULL);
编译运行后,会自动打开一个命令行监控窗口,输入pwd就可以看到当前的工作目录,于是需要先将工作目录转换至存放add.m的目录: engEvalString (ep, ”cd ..\\..\\work”);
engEvalString是往Matlab里输命令的函数,显然我们的目标是成功运行: engEvalString (ep, ”s=add(a,b)”);
目前Matlab中并没有a和b两个变量,因此需要在C中初始化这两个变量并转换成Matlab基本变量类型mxArray,才能将它们输入到Matlab中。
调用Matlab引擎可以在WIN32、MFC中使用,它的原理实际上相当于打开一个精简版的Matlab然后往里面输命令。下面是调用Matlab中的加法程序add.m的例子。
先在Matlab的work目录下创建add.m文件并编写程序如下:
function s = add (a, b) s = a+b;在C程序中,首先打开精简版的Matlab
Engine *ep = engOpen (NULL);
编译运行后,会自动打开一个命令行监控窗口,输入pwd就可以看到当前的工作目录,于是需要先将工作目录转换至存放add.m的目录: engEvalString (ep, ”cd ..\\..\\work”);
engEvalString是往Matlab里输命令的函数,显然我们的目标是成功运行: engEvalString (ep, ”s=add(a,b)”);
目前Matlab中并没有a和b两个变量,因此需要在C中初始化这两个变量并转换成Matlab基本变量类型mxArray,才能将它们输入到Matlab中。
展开全部
你这样想没有错,但是你有没有考虑过相反的方向,就是使用matlab调用你写好的C程序就好了,这方面的教程很多,百度文库就有一片文章简单说明,况且,如果是单纯的C调用matlab的话,根本无法提供画图功能多需要的matlab环境。文章链接如下:
http://wenku.baidu.com/link?url=l_60mmRaJ7dlY4yuNrycWmR7fo8SAxeSdsz5mpWch8WclOlzeRfvA3-1ibb_k6tb7cAT14tdL4tLKZUvvRCertdzUVWcVncrnuLAsjuQ-M3
http://wenku.baidu.com/link?url=l_60mmRaJ7dlY4yuNrycWmR7fo8SAxeSdsz5mpWch8WclOlzeRfvA3-1ibb_k6tb7cAT14tdL4tLKZUvvRCertdzUVWcVncrnuLAsjuQ-M3
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询