手机分类
  导航: 电脑时代在线 · 机械电子 · MATLAB
有问题吗?看 疑难解答 电脑术语

Matlab 编译文件地性能优化

 
硬件盘点
手机推荐
 
『Matlab 编译文件地性能优化』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2005-8-18 

12.5 编译文件的性能优化
12.5.1 优化原M文件的性能

12.5.1.1 提高向量化程度
【例 12.5.1 .1-1 】本例演示: M 文件与 MEX 文件、向量运算与循环运算的速度比较。

(1)编写如下两类函数 M 文件。
function y=sa(x)
x=x+(x==0)*eps;
y=sin(x)./x;
function y=saf(x)
n=length(x);
for k=1:n
x(k)=x(k)+(x(k)==0)*eps;
y(k)=sin(x(k))/x(k);
end

(2)在 MATLAB 指令窗中,对 sa_mex.m 和 saf_mex.m 进行编译。
cd d:\mywork
mcc -x sa_mex %<1>
mcc -x saf_mex %<2>

(3)运行四个文件,记录运算时间
t=-2*pi:pi/500:2*pi;
tic;sa(t);tt(1)=toc;
tic;saf(t);tt(2)=toc;
tic;sa_mex(t);tt(3)=toc;
tic;y=saf_mex(t);tt(4)=toc;

(4)结果显示和比较
plot(t,y,'r-');grid

图 12.5.1 .1-1

disp(' 运算速度比较 ')
disp(' sa.m saf.m sa_mex.dll saf_mex.dll')
disp(tt)

运算速度比较
sa.m saf.m sa_mex.dll saf_mex.dll
0.3300 2.9100 0.3800 2.5800

12.5.1.2 对数组进行预置
【例 12.5.1 .2-1 】以上节例 12.5.1.1-1 为基础。 saf.m 文件中数组变量 x 和 y 的大小随循环进行而增长,这大大减慢了运算速度。本例演示:在循环前对进行变量预置的好处。

(1)编写如下文件,以 saf_pro.m 和 saf_pro_mex.m 为名,将之保存在当前目录下。
function y=saf(x)
n=length(x);
x=zeros(1,n);y=zeros(1,n);
for k=1:n
x(k)=x(k)+(x(k)==0)*eps;
y(k)=sin(x(k))/x(k);
end

(2)产生编译文件
mcc -x saf_mex
mcc -x saf_pro_mex

(3)运行
t=-2*pi:pi/500:2*pi;
tic;saf(t);tt(1)=toc;
tic;saf_pro(t);tt(2)=toc;
tic;saf_mex(t);tt(3)=toc;
tic;y=saf_pro_mex(t);tt(4)=toc;

(4)速度比较
disp(' 运算速度比较 ')
disp(' saf.m saf_pro.m saf_mex.dll saf_pro_mex.dll')
disp(tt)
运算速度比较
saf.m saf_pro.m saf_mex.dll saf_pro_mex.dll
2.8600 0.6600 2.6300 0.4400

12.5.2 利用mcc(-V1.2)的优化性能

12.5.2.1 编译时指定优化选项-r和-i
【例 12.5.2 .1-1 】求如下非线性差分方程组在 10000 个点上的值。观察原 M 文件、无选项和有选项 MEX 文件运行速度的不同。


(1)利用 MATLAB 编辑窗口编写如下 M 函数文件
function [x,y]=m_henon(n)
x=zeros(1,n);y=zeros(1,n);
for k=1:n-1
x(k+1)=1+y(k)-1.4*x(k)^2;
y(k+1)=0.3*x(k);
end

(2)对 M 文件分别选用编译器 2.0 和 1.2 进行编译如下。
cd d:\mywork
mcc -x mex20_he

[1] [2] 下一页  


如果您有什么疑问,可以至论坛提出或者解答他人的疑问   返回页面顶部

】【关闭窗口
·上一篇文章:
·下一篇文章:
·导航: 电脑时代在线 · 机械电子 · MATLAB
相关文章
 
搞笑自拍|图片故事|美女图库|体坛宝贝|明星爆料|世界奇观|风光摄影|历史回忆|大千世界
Photshop超炫图片
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部  
网站文本地图
  版权所有:电脑时代在线 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2007 www.PCvz.com online services. all rights reserved. 蜀ICP备05015578
Template designed by LaoJiang. Optimized for 1024x768 to Firefox,Opera and MS-IE. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光