Matlab调用DLL
来源:互联网 发布:淘宝三阶魔方 编辑:程序博客网 时间:2024/04/27 06:53
本来想把算法写成一个DLL的形式,这样既可以在控制软件中方便调用,又可以在Matlab中通过调用外部DLL的形式对算法进行仿真分析,所以需要了解Matlab调用外部DLL的方法,但是后来发现Matlab调用DLL只支持用C语法写成的DLL,C++的一些关键特性如类、继承等都不支持,用起来的话局限性很大的,还不如单独再用M文件把算法再写一遍进行仿真呢。这里把Matlab调用DLL的过程记录一下吧,以后有用到的时候再说。 在Matlab的Help中搜索"Calling Functions in Shared Libraries"即可看到关于此内容的帮助文档。 下面以一个简单的小例子演示Matlab调用DLL的过程: 1、编译器准备 在Matlab的命令窗口输入:mex -setup 选择你的编译器,我的是: [2] Microsoft Visual C++ 2008 SP1 in c:\Program Files\Microsoft Visual Studio 9.0 2、编写你自己的DLL 在Visual Studio 2008中新建一个Win32的Dll工程,不妨设名字为MatlabDllTest 编辑MatlabDllTest.cpp: 编辑MatlabDllTest.h: 3、加载DLL:把编译连接之后产生的MatlabDllTest.dll和MatlabDllTest.h文件拷贝到Matlab的当前工作目录下,输入 loadlibrary('MatlabDllTest','MatlabDllTest.h'); 4、查看DLL中导出的函数 libfunctions MatlabDllTest -full -full选项会列出导出函数的详细输入和输出参数,这是输出信息如下: Functions in library MatlabDllTest: double add(double, double) 5、调用函数 calllib('MatlabDllTest', 'add', 1.3, 4.6) 此时就会输出正确的结果 ans = 5.9000 总结:这个例子比较简单,只是为了演示整个过程,如果你是真的用到了Matlab来调用外部DLL的这种方式的话,就要注意你的DLL工程要符合Matlab的要求啦,详细信息请自己查看Matlab的帮助文件,我就不罗嗦了。
#include "MatlabDllTest.h"
doubleadd(double x, double y)
{
return (x+y);
}
double
{
}
#ifndef MATLABDLLTEST_H
#define MATLABDLLTEST_H
#ifdef __cplusplus
extern"C"
{
#endif
__declspec(dllexport) double add(double x, double y);
#ifdef __cplusplus
}
#endif
#endif
#define MATLABDLLTEST_H
#ifdef __cplusplus
extern
{
#endif
#ifdef __cplusplus
}
#endif
#endif
(一定要有这步,如果dll不成功,会显示错误原因)
http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380147d8c8c4668d4e419ce3b4c413037bfa6663f405a8e906b6075aa1e0deda16778320123b598c9dc1bd8ac925f75ce786a6459db0144dc46fc8d18769137912afedf1ef0cef525e5afc5a2de4352ba055b24&p=9773c64add8411a05bec9e2f16559f&user=baidu&fm=sc&query=matlab����dll&qid=b94d252c061ed77a&p1=5
0 0
- Matlab调用DLL方法
- Matlab调用DLL
- Matlab调用DLL
- matlab调用c dll
- Matlab 调用 C# dll
- Matlab调用DLL
- vc调用matlab的dll
- C++调用Matlab DLL应用
- vs c++ 调用matlab编译的dll
- vc调用matlab生成的dll实例
- VC调用MATLAB 产生的dll文件
- VC调用Matlab生成的DLL
- CSharp调用Matlab编译的dll
- VC6.0调用Matlab Dll的方法
- c/c++调用matlab的dll
- VS2013调用matlab生成的dll
- matlab调用VS生成的DLL
- matlab调用c++生成的DLL
- 研磨设计模式之桥接模式-1
- VS2010中的调试技巧总结
- Hive权限控制和超级管理员的实现
- 说说大型高并发高负载网站的系统架构
- 整理HOG(openCV)(涉及HOG函数的简单介绍和使用)
- Matlab调用DLL
- cocos2d-x 游戏引擎的处理流程 MainLoop主循环(下)
- Android Volley - volley StringRequest編碼問題
- 基于JavaEE平台实战WebService框架Xfire+Ajax框架DWR视频教程
- 小步快跑,快速迭代,持续优化
- 免费云空间/VPS AppFog申请及Python Web应用开发与上传实战
- 需求分析-1
- eclipse Maven配置以及使用方法<转>
- javax.xml.bind.UnmarshalException