在Matlab下编译levmar
来源:互联网 发布:红外热成像软件 编辑:程序博客网 时间:2024/06/05 13:32
Levenberg-Marquardt已经成为现在最为通用的非线性最小二乘算法,而levmar库提供了一个非常简便和鲁棒的实现。
levmar给出了c++和matlab两个版本。在msvc下编译levmar,网上有很多现有的教程,这里不再赘述。要注意的是,levmar依赖于lapack\blas库来求解一些基本的线性代数问题,可以直接下载MSWin下编译好binary files。然后在CMake中将lapack\blas的目录和lib名字做出相应的修改。
下面是本文的重点,在matlab下编译levmar。本质上我们是用mex命令将levmar.c文件编译成 .mexw32文件。可是levmar(我使用的的最新版本2.6)中的levmar.c另外调用了刚才msvc编译好的levmar库。因此在执行mex命令时需要添加三个库levmar、lapack和blas。在我的本机上,mex命令是这样的:
mex -DHAVE_LAPACK -O -IE:\library\levmar-2.6\ -LE:\library\levmar-2.6\build\Release\ -LE:\library\lapack-MD-release\ levmar.c -llevmar -llapack_win32_MD -lblas_win32_MD
-DHAVE_LAPACK 定义了一个宏,表示使用lapack来解线性代数。
-O 表示在编译的过程中优化,可以缺省。
-IE:\library\levmar-2.6\ 添加levmar.c中#include<levmar.h> 的文件目录,目录名可以打单引号也可以不打。
-LE:\library\levmar-2.6\build\Release\ 之前msvc下编译好的levmar.lib所在文件目录。
-LE:\library\lapack-MD-release\ lapack和blas所在的文件目录。
levmar.c 要编译的c源文件名。
-llevmar levmar库,注意不要加.lib。
-llapack_win32_MD lapack库,我使用的是动态链接版本。
-lblas_win32_MD blas库,同样是动态链接版本。
编译好之后,将lapcak\blas的两个dll, lapack_win32_MD.dll和blas_win32_MD.dll拷贝到matlab当前的工作目录。然后运行lmdemo.m,如果能得到结果,证明编译成功。
- 在Matlab下编译levmar
- 在Matlab中使用Levmar
- levmar在Windows ×86编译及Demo示例
- levmar ndk 编译
- 在Matlab下编译sparseLM
- 在Matlab下编译sparseLM
- libsvm在MATLAB下的编译问题
- vs2010 编译 levmar 2.6,(Levenberg-Marquardt)
- 在vs2008中使用levmar进行曲线拟合
- libsvm在64位linux下matlab编译
- spams----稀疏建模工具箱在MATLAB下的安装编译
- mac下matlab编译mex
- levmar使用
- Levmar 配置
- 如何快糙好猛地在Windows下编译CAFFE并使用其matlab和python接口
- 如何快糙好猛地在Windows下编译CAFFE并使用其matlab和python接口
- 如何快糙好猛地在Windows下编译CAFFE并使用其matlab和python接口
- 在Windows下编译CAFFE并使用其matlab和python接口
- 心得10--jsp自定义标签介绍
- C/C++ Linux 程序员必须了解的 10 个工具
- JQuery和JS实现奇偶行不同背景颜色
- implements CBase{ @Override public void say_sth()
- html简介
- 在Matlab下编译levmar
- LDO和DC-DC器件的区别
- 全面解析Java注解
- CentOS下安装codeblocks
- 每个程序员都应该知道的8个Linux命令
- 关于驱动程序的头文件
- hibernate 实时更新数据库
- 西西吹雪:从程序员到项目经理(二)
- alsa