vs2008中调用matlab3013a程序配置方法

来源:互联网 发布:创意二维码制作软件 编辑:程序博客网 时间:2024/04/29 05:55

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[N],y[N];
    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




0 0
原创粉丝点击