四联光电智能照明论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2031|回复: 0
打印 上一主题 下一主题

C程序中调用Matlab的方法(Linux平台)

[复制链接]
  • TA的每日心情
    开心
    2018-12-28 16:25
  • 817

    主题

    1556

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    14941
    跳转到指定楼层
    楼主
    发表于 2016-10-19 10:01:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    一、调用MATLAB的几种方法
        Matlab是强大的数学工具,有些时候我们需要自己解一些题,但又不想自己写算法的时候,就可以使用Matlab提供的外部调用功能,也就是说你的程序只需要编写其他部分,而计算交给Matlab实现。
        实现外部调用有三种方法:
        1. 在C或者Fortran语言中调用(本文介绍)
        2. 与Matlab通讯
           在UNIX下使用管道(pipe),在Windows下使用COM和DDE方式
        3. 使用WebService接口

    二、在C中调用Matlab计算引擎的步骤
    1.  matlab引擎依赖/bin/csh启动,所以不管你使用何种shell,都必须安装csh。
    2. 动态库路径LD_LIBRARY_PATH中添加 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/MATLAB/R2012a/bin/glnxa64 (这一步是为了添加matlab动态库的目录,但是似乎并未起到作用。。)
    3. 由于我在上一步中的操作不work,就另外添加了一个动态库目录:
    #sudo gedit /etc/ld.so.conf
    在打开的ld.so.conf文档中添加:/usr/local/MATLAB/R2012a/bin/glnxa64。
    然后执行命令:#sudo /sbin/ldconfig
    直到这里我才成功的添加了matlab的动态库。
    4. 编译的时候,必须指定头文件目录、库文件目录、库文件:
    g++ -g -c test.c -I/usr/local/MATLAB/R2012a/extern/include  -L/usr/local/MATLAB/R2012a/bin/glnxa64/ -leng -lmx -lmex
    g++ -g -o test test.o -I/usr/local/MATLAB/R2012a/extern/include   -L/usr/local/MATLAB/R2012a/bin/glnxa64/ -leng -lmx -lmex
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Silian Lighting+ ( 蜀ICP备14004521号-1 )

    GMT+8, 2024-5-15 22:26 , Processed in 1.046875 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表