山山来迟

Matlab C++ 数学库的使用

 

本文采用的就是利用Matlab C++数学库函数,其配置和使用方便,函数与Matlab类似,实现了VC++Matlab的无缝结合。

 

1      简单介绍

Matlab C++ 数学库中用mwArray类封装了Matlab阵列的数据及其基本操作函数。

Matlab C++ 数学库包含了四百多个常用Matlab数学函数,并且其调用方式和Matlab函数的使用习惯极其相似。对于Matlab的使用者来说,采用Matlab C++数学库,可以使应用程序完全脱离Matlab的解释环境。对于C++的使用者来说,采用Matlab C++数学库可以充分利用Matlab已有的矩阵运算的数学函数库,加快程序的开发进度。

对带有Matlab C++数学库的Matlab 6.5版本,Matlab数学库安装以后,在<Matlab 根目录> \extern\include\cpp目录下,可以看到”matlab.hpp”和“libmwsgls.hpp”两个文件。

 

2      环境配置

如果要使用Matlab C++矩阵库,不能直接使用,必须对环境进行一定的设置。我们的运行环境是Visual C++ 6.0,下面将从几个方面说明一下使用Matlab C++数学库的环境的配置。

l         需要加入和忽略的静态链接库

对于使用Matlab C++数学库的VC++工程人员来说,在VC++工程设置中需要加入的静态链接库有:libmatpm.lib libmx.lib libmatlb.lib libmat.lib libmmfile.lib sgl.lib libmwsglm.lib

需要注意的是,需要设置静态库的路径:

Tools-Options-Directories-Library files

以上静态链接库的地址:

libmatpm.lib  

F:\matlab6.5\extern\lib\win32

libmx.lib     

F:\matlab6.5\extern\lib\win32\microsoft\msvc60

libmatlb.lib   

F:\matlab6.5\extern\lib\win32\microsoft\msvc60

libmat.lib     

F:\matlab6.5\extern\lib\win32\microsoft\msvc60

libmmfile.lib  

F:\matlab6.5\extern\lib\win32\microsoft\msvc60

sgl.lib

F:\matlab6.5\extern\lib\win32\microsoft\msvc60

libmwsglm.lib

F:\matlab6.5\extern\lib\win32\microsoft\msvc60

需要忽略的静态库文件时:MSVCRT

l         设置C/C++标签中的选项

Category的下拉列表框内容设置为Code Generation,又将Use run-time library选项设为Multithreaded DLL ,如下图:

Category选项设置为Peprocessor,并且在Preprocessor definitions选项中增加如下内容:MSVC,MSWIND,IBMPC,D_STDC_,_AFXDLL。如下图所示:

l         在工程中包含相应的头文件

VC++ 工程中如果不用Matlab C++图形库的时候,只需要包含头文件“matlab.hpp;如果要用Matlab C++图形库的时候,则需要包含头文件matlab.hpp”和“libmwsglm.hpp

使用注意事项:

在使用mwArray 类中,不能使用变量i,否则会和类mwArray中的函数i()(复数虚部)冲突,从而造成下面错误:

 term does not evaluate to a function

posted on 2010-01-07 11:37  山山来迟  阅读(2671)  评论(0)    收藏  举报

导航