如何将MATLAB代码转化为可执行的VC代码

2024-11-28 02:42:56
推荐回答(1个)
回答1:

需要用到matcom,它可以把.m文件转化。cpp文件,安装一个把,你会在vc的工具条里看到,就想va和qt工具条差不多.1.4 Matcom下载地址及资源
下载地址是版上询问最多的问题,再次建议大家能到教育网的搜索引擎
http://pccms.pku.edu.cn:8000/
http://search.igd.edu.cn
http://soft.cs.uestc.edu.cn/search.php
搜索关键字matcom或MIDEVA,可以查找教育网上的最新的matcom资源 Matcom的开发者Mathtools公司地址是 http://www.mathtools.com/上面也提供了免费下载服务(他们还会给你一个 evaluation key),如果你从哪里下载,他们会给你定期发email告诉最新的动态。步骤:(1) 启动MATLAB,在命令窗口中运行“mex –setup”按照提示选择Microsoft Visual C++ 6.0。它将配置MEX使用Microsoft Visual C++ 6.0默认的编译器(创建C-MEX文件必需),并且安装MATLAB Add-in 所需文件到Microsoft Visual C++ 6.0目录。
(2) 在MATLAB环境下运行“mbuild –setup”,按提示选择Microsoft Visual C++ 6.0为默认的编译器(创建独立应用程序必需),并安装MATLAB Add-in 所需的MATLAB Compiler和C/C++数学库文件到Microsoft Visual C++ 6.0目录。
(3) 在MATLAB环境下运行“cd(prefdir)”和“mccsavepath”。它将保存当前MATLAB路径到mccpath文件中,这是因为MATLAB Add-in 要脱离MATLAB运行,否则它无从知道MATLAB路径。
(4) 在Microsoft Visual C++ 6.0环境中配置MATLAB Add-in ,方法是:从菜单“Tools àCustomize“,选择“Add-ins and Macro Files”选项卡,选中“MATLAB Add-in”,点击“Close”。Microsoft Visual C++ 工具栏中就会出现MATLAB Add-in 图标了。以后每次启动Microsoft Visual C++ ,系统就会自动加载MATLAB Add-in 。
(5) 配置Microsoft Visual C++ 6.0的路径环境。在Microsoft Visual C++ 6.0中选择“ToolsàOptions”,选择“Directories”选项卡,在其中的“Show directories for”下拉式选项框中分别选择“Include Files”和“Library Files”,在下部的编辑框中输入以下路径:
Include Files:
%MATLAB%\EXTERN\INCLUDE
%MATLAB%\EXTERN\INCLUDE\CPP
Library Files:
%MATLAB%\EXTERN\LIB\WIN32
%MATLAB%\EXTERN\LIB\WIN32\MICROSOFT\MSVC60
其中%MATLAB%是MATLAB本地安装路径。假设MATLAB安装路径为D:\MATLAB6p5,则用D:\MATLAB6p5代替%MATLAB%。
(6) 配置Windows系统(针对于9x系统)。在Windows 95/98下,找到config.sys,添加一行:shell=c:\command.com /e:32768 /p。Windows ME 的配置有所不同,需设置Conagent.exe的属性Memory选项卡的Initial Environment的值为4096。
从表面上看,接口环境的配置步骤较多,但是以上步骤只需要设置一次。除非接口环境改变,否则一旦配置好开发过程中就无需再配置。
以上设置完成后接下来的工作就很简单了。
显把你的m文件改成函数形式,例如假设你的m文件名为fuzzytest.m,则再你的m文件前加上一行:
function fuzzytest()
注意了,函数名一定要和m文件的名字一样,否则如果有参数传递的话无法传递参数。
现在我们来把m文件集成到VC当中。
启动VC,新建里选MATLAB工程向导,输入工程名字。然后确定,在接下来的设置中,对“Visual MATLAB Application Type”选择“Share M-DLL”,并选中“Use Handle Graphics”为“Yes”。其他的采用默认设置。确定完成后会提示加入m文件到该工程中,找到fuzzytest.m文件,把它加进去,系统会自动进行翻译工作。完成后直接编译dll文件就可以得到该m文件生成的dll。
之后你就可以在另外的程序中调用该dll了。但是注意的是在调用时入口函数是mlfFuzzytest,其他的以mlx开头的都无法直接调用。另外在程序的构造函数里要加上
xxxInitialize();
在构析函数里加上xxxTerminate();其中xxx是你在VC里面集成m文件时采用的工程名称。
这样程序就可以在脱离MATLAB的环境下运行并且像MATLAB那样作图。发行的时候要把MATLAB运行库连同程序一起发布。
还有一点我忘了说了,要设置vc中的一些选项,
(1)tool->options->directories->include files和library files中添加c:\matcom45\lib
(2)project->add to project->files,将matcom45目录下的一个文件v4501.lib加进去