• C/C++下调用matlab函数操作说明


    1.matlab的安装

    连接:http://pan.baidu.com/s/1qXuF7aO

    安装32位版本的matlab(在目录下bin文件夹中有两个文件夹,选择win32文件夹下的setup进行安装)

    2.matlab mex编译器配置

    安装完matlab之后,需要设定对应的c++编译器才能编译.m文件生成可供c++调用的库文件。打开matlab,在命令行输入:mex -setup,选择已安装的vc编译器

    我的matlab版本是R2010b,选择的是[2] Microsoft Visual C++ 2008 Express,然后一直选择y直到看到Done

    然后继续在命令行中输入:mbuild -setup  ,按照上述类似的方式设置编译器

    假设存在一个Add.m的文件需要编译成库文件,

    Add.m文件

    function C=Add(A,B)

         C=A+B;

    end

    使用命令编译:mcc -W cpplib:libAdd  -T link:lib Add.m

    成功编译会在Add.m的路径下生成一些文件:

    如果出现错误,可能是编译器配置错误,依次输入一下两行命令查看配置文件:

    >> cd(prefdir)

    >> edit compopts.bat

    set VSINSTALLDIR=  这里如果是空值,需要将电脑中安装的VC路径写到这里

    3.创建c++程序调用matlab函数

    将前面生成的libAdd.dll"、"libAdd.h"和"libAdd.lib"三个文件拷贝到新建的vc工程中,并配置工程属性,添加matlab安装目录下extern中include文件夹,我的是D:matlabexterninclude

    然后配置库目录:

    添加D:matlabexternlibwin32microsoft这里需要注意的是,该路径下有" mclmcrrt.lib"文件,是我们需要的。

    最后配置link连接器,添加:

    libeng.lib

    libmat.lib

    libmex.lib

    libmx.lib

    mclmcrrt.lib

    mclmcr.lib

    libAdd.lib(最后这一个是Add.m生成的)

    下面的c++程序实现调用

    结果:

  • 相关阅读:
    Android -- SEGV_MAPERR,SEGV_ACCERR
    使用预编译库PREBUILT LIBRARY官方说明
    Application.mk文件官方使用说明
    Android.mk文件官方使用说明
    ndk-build官方使用说明
    cocos中lua使用shader实例
    Wifi 攻击科普
    狠心把小米笔记本的操作系统换成了kali
    端口转发正反向链接 NC 和 SSH下的用法
    linux下无回显可将回显发送到服务器
  • 原文地址:https://www.cnblogs.com/yangang92/p/5312991.html
Copyright © 2020-2023  润新知