您的位置:首页 > 编程语言 > MATLAB

vs2008中调用matlab3013a程序配置方法

2015-07-26 17:02 330 查看
1.在vs2008中建立一个win32控制台应用程序,;

2.在vs2008中的 “工具”——>“选项”——>"项目与解决方案"——>"VC++目录"——>右上角选择"包含文件",在下面

  包含:D:\Program Files\MATLAB\R2013a\extern\include

3.再选择“库文件”,在下面包含:D:\Program Files\MATLAB\R2013a\extern\lib\win32\microsoft ,然后按确定

4.选择左边新建的项目名,右击项目名,选择“属性”——>"配置属性"——>“链接器”——>"输入"——>"附加依赖项"中添加:

libmx.lib libmat.lib libeng.lib 各文件之间以空格隔开。

在网上找了个程序测试了一下:

#include <iostream>

#include <math.h>

#include "engine.h"

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

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

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

using namespace std;

using namespace std;

int main()

{

    const int N = 50;

    double x
,y
;

    int j = 1;

    for (int i=0; i<N; i++) //计算数组x和y

    {

        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 <<"Can't start Matlab engine!" <<endl;

        exit(1);

    }

    //定义mxArray,为行,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。

    mxDestroyArray(yy);

    cout <<"Press any key to exit!" <<endl;

    cin.get();

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



*******在做完以上工作后,编译可以通过,但是要执行的话,还会报“计算机中丢失libmx.dll。”的错误。*******

       原因:matlab2010a版本的环境变量出现了问题。libmx.dll是存在于D:/Program Files/MATLAB/R2010a/bin/win32文件夹中,而在Win7系统变量里Matlab在安装的时候时只写入了路径D:/Program Files/MATLAB/R2010a/bin,故系统不会自动到其子文件中找dll,从而报错说找不到文件。

       解决办法:由于旧版本的Matlab中没有将这些dll分离放到win32子文件夹中。所以只要在系统变量中包含路径D:/Program Files/MATLAB/R2010a/bin/win32即可。

5.配置环境变量:右击桌面“计算机”——>"属性"——>"高级系统设置"——>“环境变量”——>系统变量中“path”中添加:D:\Program Files\MATLAB\R2013a\bin\win32。

进测试,成功调用了matlab
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab vs2008