| 广告招租,e-mail:yesize@hotmail.com
|
|
广告招租,e-mail:yesize@hotmail.com
12 MATLAB编译器和API 几乎所有使用过 MATLAB 的科技人员,无不为该软件的简洁、便捷和功能之强大和可靠所震撼,同时也对 MATLAB 产生了新的期望:一,希望程序能运行得更快;二,希望获得可摆脱 MATLAB 环境而独立运行的可执行软件;三,希望从其他“非 MATLAB ”的外部程序中调用 MATLAB 。 本章前 6 节介绍 MATLAB 版编译器( Compiler )。由于 1.2 版与 2.0 版差异较大,又由于 2.0 版缺少 1.2 版具有的优化功能,因此内容安排上将兼顾地论及两个版本。值得指出的是:除 Mathworks 外,还有其他一些公司生产的编译器,其中比较著名的是 MathTools 公司的 Mediva ;据该公司自称,性能优于 Mathworks 的,且具有绘图功能。 本章第 7 节论及 API 应用程序接口,扼要地介绍不同平台间的数据传送和 MATLAB 引擎技术。节后算例演示了,如何从外部调用 MATLAB 引擎。 12.1 编译器2.0概述 12.1.3 编译器2.0的局限性 12.1.4 把脚本文件改写为函数文件 【例 12.1.4 -1 】有一个绘圆的 M 脚本文件 circle.m 如下。希望获得一个 MEX 绘圆程序。 (1)原始的绘圆脚本文件 [circle.m] clf;r=2;t=0:pi/100:2*pi;x=r*exp(i*t); plot(x, r* );axis( square ) (2)对这脚本文件直接编译将因错误而失败 mcc -x circle ??? Error: File "circle" is a Script M-file and cannot be compiled with the current Compiler. Error in ==> H:\MATLAB53\toolbox\compiler\mcc.dll (3)把脚本文件改写成函数文件。 [circle_f.m] : function circle_f(r) clf;t=0:pi/100:2*pi;x=r*exp(i*t); plot(x, r* );axis( square ) (4)再对 circle_f.m 进行编译,将顺利通过。 mcc -x circle_f %mcc 是编译指令,详见 12.4 节。 (5)运行生成的 MEX 文件 circle_f.dll circle_f(0.5) % 调用 circle_f 绘制一半径为 0.5 的圆 which circle_f % 查询所调用的 circle_f 的路径全称。 d:\mywork\circle_f.dll  图 12.1.4 -1 MEX 文件 circle_f.dll 所画的圆
版权说明:作品来源于网上,版权归作者所有,如果无意中侵犯了您的版权,请来信告知,本站将在3个工作日内删除。yesize@hotmail.com |
|