先贴本人调试通过的代码:

#pragma comment(lib, "libmx.lib")

//#pragma comment(lib, "libmat.lib")//注销了也没关系

#pragma comment(lib, "libeng.lib")

#include

#include "engine.h"

#include

using namespace std;

int main()

{

const int N = 50;

double x[N],y[N];

int j = 1;

for (int i=0; i

{

x[i] = (i+1);

y[i] = sin(x[i]) + j * log(x[i]); //产生-之间的随机数赋给xx[i];

j*= -1;

}

Engine *ep; //定义Matlab引擎指针。

if (!(ep=engOpen(NULL))) //测试是否启动Matlab引擎成功。

{

cout <

exit(1);//可以思考下

}

//定义mxArray,为1行,N列的实数数组。

mxArray *xx = mxCreateDoubleMatrix(1,N, mxREAL);

mxArray *yy = mxCreateDoubleMatrix(1,N, mxREAL); //同上。

memcpy(mxGetPr(xx), x, N*sizeof(double)); //将数组x复制到mxarray数组xx中。

memcpy(mxGetPr(yy), y, N*sizeof(double)); //将数组x复制到mxarray数组yy中。

engPutVariable(ep, "xx",xx); //将mxArray数组xx写入到Matlab工作空间,命名为xx。

engPutVariable(ep, "yy",yy); //将mxArray数组yy写入到Matlab工作空间,命名为yy。

//【特色】向Matlab引擎发送画图命令。plot为Matlab的画图函数,参见Matlab相关文档。

engEvalString(ep, "plot(xx, yy); ");

mxDestroyArray(xx); //销毁mxArray数组xx和yy。(注:Matlab工作空间中的xx、yy变量在这里没有销毁)

mxDestroyArray(yy);

cout <

cin.get();

engClose(ep); //关闭Matlab引擎。

}

------------------------------------------------------------------------------------------

结果贴图:

Matlab中内存变量:

xx =

Columns 1 through 22

1     2     3     4     5     6     7     8     9    10    11    12    13    14    15    16    17    18    19    20    21    22

Columns 23 through 44

23    24    25    26    27    28    29    30    31    32    33    34    35    36    37    38    39    40    41    42    43    44

Columns 45 through 50

45    46    47    48    49    50

yy =

Columns 1 through 13

0.8415    0.2162    1.2397   -2.1431    0.6505   -2.0712    2.6029   -1.0901    2.6093   -2.8466    1.3979   -3.0215    2.9851

Columns 14 through 26

-1.6484    3.3583   -3.0605    1.8718   -3.6414    3.0943   -2.0828    3.8812   -3.0999    2.2893   -4.0836    3.0865   -2.4955

Columns 27 through 39

4.2522   -3.0613    2.7037   -4.3892    3.0299   -2.9143    4.4964   -2.9973    3.1272   -4.5753    2.9674   -3.3412    4.6274

Columns 40 through 50

-2.9438    3.5549   -4.6542    2.9294   -3.7665    4.6576   -2.9269    3.9737   -4.6395    2.9381   -4.1744

===========================================================================================

注意事项:

1)本程序只需要建立win32控制台空项目

2)调用的是Matlab计算引擎,故需要有Matlab环境

3)VS2008中需要在“包含文件”中加入D:\Program Files\MATLAB\R2009b\extern\include(以后本人的Matlab与C混合编程例子中将不再给出此注意点)

4)VS2008中需要在“库文件”中加入D:\Program Files\MATLAB\R2009b\extern\lib\win32\microsoft(以后本人的Matlab与C混合编程例子中将不再给出此注意点)

5)系统变量中加入三个路径:D:\Program Files\MATLAB\R2009b\runtime\win32;D:\Program Files\MATLAB\R2009b\bin\win32;D:\Program Files\MATLAB\R2009b\extern\lib\win32\microsoft;注销后重进系统,以使路径生效

6)应该不会再有问题。【如果还有其他小问题(Main、Unicode等)网上找可以找到解决办法】

c matlab 引擎调用,【MATLAB与C的混合编程】之【C程序调用Matlab计算引擎】(1)相关推荐

  1. qt web混合编程_基于Qt与MATLAB的混合编程技术

    摘要:在Qt雷达仿真系统中,数据处理及图形显示尤为重要.本文为此提出了一种Qt与MATLAB混合编程的方法.通过VC++和MATLAB混合编程技术,将MATLAB函数封装成动态链接库,Qt调用这个动态 ...

  2. C#与Matlab混合编程中遇到的“MathWorks.MATLAB.NET.Arrays.MWNumericArray”的类型初始值设定项引发异常。

    C#与Matlab混合编程中遇到的"MathWorks.MATLAB.NET.Arrays.MWNumericArray"的类型初始值设定项引发异常. 参考文章: (1)C#与Ma ...

  3. C++ 接口 函数导出_Matlab与C/C++混合编程、Visual C++与Matlab封装库互相调用相关要点...

    [版本说明] Visual Studio 2010 Matlab2014a 64bit Windows7 64bit 以下是我安装的 Matlab2014a 支持的 C++混合编译器的SDK版本(为了 ...

  4. 18_Android中Service的生命周期,远程服务,绑定远程服务,aidl服务调用,综合服务案例,编写一个应用程序调用远程支付宝远程服务场景

    ============================================================================ 服务的生命周期: 一.采用start的方式开始 ...

  5. python脚本编程实例_C程序调用Python脚本的例子

    下面我们一起来看看关于C程序调用Python脚本的例子,如果你对此有兴趣的希望此教程对各位同学会有所帮助. 代码如下 复制代码 #include int main(){ PyObject * g_pM ...

  6. java 异步调用方法_乐字节Java编程之方法、调用、重载、递归

    一.概述 方法是指人们在实践过程中为达到一定目的和效果所采取的办法.手段和解决方案. 所谓方法,就是解决一类问题的代码的有序组合,是一个功能模块.编程语言中的方法是组合在一起来执行操作语句的集合.例如 ...

  7. matlab如何打开dcm_MatLab 与 visual studio 混合编程环境配置

    一.本文可以应用与以下matlab和visual studio版本: MatLab: Matlab2017a,Matlab2017b,Matlab2018a,MatLab2018b,MatLab201 ...

  8. C++ 调用 Python 代码 - Clion QT混合编程 ,各取长处。

    Qt 自带编辑器 调用Python  Clion 编辑器    调用Python 前言:python 无所不能.代码简洁,易于维护,开发效率很快.就是运行速度太慢. C++速度快,但是开发繁琐,没有p ...

  9. go语言 c# 混合编程 pdf,【C# 调用 Go 语言】0x1 Hello Golang-Go语言中文社区

    C# 和 Golang 都不是世界上最好的语言.在不同的业务场景下,C# 和 Golang 各有所长.如果要编写一个网络程序,显然 Golang 更擅长,而如果要编写一个桌面 GUI 程序,那么 C# ...

  10. 大数据-计算引擎:MapReduce、TEZ、Spark【Hive可选用的三大计算引擎】

    MapReduce基本被Spark替代,Spark 速度是MapReduce的100倍.

最新文章

  1. 遇事不责怪别人,换位思考能成全更好的自己
  2. Python Scrapy
  3. 嵌入式Linux USB驱动开发之教你一步步编写USB驱动程序
  4. 从零开始学习docker(十三)Docker Compose--scale
  5. 系统起动时加载的过程
  6. python输入正整数n、求n以内能被17整除的最大正整数_求100之内自然数中最大的能被17整除的数资料...
  7. 哪些事情瞬间暴露了你的贫穷?
  8. delphi打印机编程
  9. Msfconsole的基本使用
  10. R语言学习之深圳市空气质量分析
  11. 我们都希望有一部属于自己的电脑。
  12. ORACLE获取当天所在月份的所有日期和周几(每月类似台历显示)
  13. 2345看图王如何关闭广告
  14. lvs集群实现lvs-dr模型和lvs-nat模型
  15. 计算机网络:数据链路层功能
  16. 软银进军共享单车,采用GPS智能锁具
  17. ubuntu硬盘修复
  18. 【理财】信托产品的发行和成立
  19. 钉钉群机器人定时发送消息并@所有人
  20. storm显微镜成像原理_超分辨率显微镜技术原理概述

热门文章

  1. Spark报错:Bad response ERROR for block BP-78092257-8.xx-121xxx
  2. spark学习-Spark性能调优(1)
  3. spark学习-Spark算子Transformations和Action使用大全(Action章)
  4. Centos KVM 基本安装过程
  5. IntelliJ IDEA这样配置,代码效率嗖嗖的
  6. 从入门到入土(三)RocketMQ 怎么保证的消息不丢失?
  7. mysql数据库数字类型_Mysql 数据库数值类型详解
  8. 实验2linux系统使用,操作系统实验答案-实验2Linux的基本操作及vi的使用(答案)
  9. 动态规划java LCS_动态规划递归求解LCS长度 | 学步园
  10. Docker启动失败提示【exec user process caused: exec format error】