预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共20页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Matlab混合编程 ByFrozensea V1.00,2005-10-30 1.介绍 Matlab6.5是最后一个提供c++mathlibrary的版本,功能强大。可以在VC中调用Matlab 的库函数进行编程并显示,得到EXE文件。Matlab7中只剩下了最基本的结构定义,效率低 下,使用不便。 以这种方式得到的程序在运行时需要相应的Matlabdll支持。示例中的EXE目录已经 附上所有基本功能所需要的dll了(Matlablibfiles\DLLs\bin\win32下的所有文件)。如果是使 用了toolbox中的函数,请附上Matlablibfiles\DLLs\toolbox\matlab目录下对应的文件。 在VC.NET(7.1.3088)中使用Matlab的库函数时,Matlab需要VC6的一些库函数支持。 也就是说,仍然需要VC6的一些库函数,并在VC.NET中添加相应的路径。 此外,Matlab中所有的库函数都放在了Matlablibfiles目录中,所以不需要安装matlab6.5 就可以使用。只要设定对应的include,lib目录,就可以编译通过。运行所需的dll可以通过 mglinstaller.exe解开得到(见DLLs目录)。库函数使用方法请查阅Matlab6Userguides. 2.基本设置 通过进行如下设置,我们可以在Matlab中使用其数学库,如矩阵球逆,FFT等。 在VC6中设置如下: /**************************************************************************** MFC:UseMFCinaSharedDLL IncludePath: D:\ProgramFiles\Matlab\extern\include D:\ProgramFiles\Matlab\extern\include\cpp LibraryPath: D:\ProgramFiles\Matlab\extern\lib\win32\ D:\ProgramFiles\Matlab\extern\lib\win32\microsoft\msvc60 ExecutablePath: D:\progra~1\matlab\bin\win32 建议在系统属性→高级→环境变量→系统变量→Path中添加 1.Addfollowinglineattheendofstdafx.h #include<matlab.hpp> 2.Adddesiredlibrariesattheendofstdafx.h #pragmacomment(lib,"libmatpm.lib") #pragmacomment(lib,"libmx.lib") #pragmacomment(lib,"libmatlb.lib") #pragmacomment(lib,"libmat.lib") #pragmacomment(lib,"libmmfile.lib") #pragmacomment(lib,"libmatpm.lib") 3.Addpreprocessorstoproject:Project->Settings->C/C++->Preprocessordefinitions. MSVC,MSWIND,IBMPC,D__STDC_ Ifnot,compilerwillreporterrorwhencompilingmatlab.hpp: c:\matlab\extern\include\cpp\matmtxif.h(16):fatalerrorC1083:Cannotopeninclude filestrstream.h. Nosuchfileordirectory. 4.ChangeprojectsettingstobuildaMultithreadDllintheRuntimeLibrary Project→Settings→C/C++→CodeGeneration→RuntimeLibrary→MultithreadDll Rebuildtheproject. Ifnot,linkerreportserrorwhenlinkingMATLABlibraryfiles: LINK:warningLNK4098:defaultlib"MSVCRT"conflictswithuseofotherlibs; use/NODEFUALTLIB:library .\ex1.exe:fatalerrorLNK1169:oneormoremultiplydefinedsymbolsfound Errorexecutinglink.exe ********