声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1207|回复: 2

[分形与混沌] Matlab的效率

[复制链接]
发表于 2008-4-2 15:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x

     感谢yufeiqun2008对吕博士CC算法的说明,帮了我很大的忙。吕博士一个小疏忽(也怪自己没有深入理解相空间重构的本质),让我的程序停滞不前3个月,昨天看了你的说明,也才明白子序列不用T延时,太精彩了,真是只隔一层纱。
     我也把自己的想法说出一点来:快速计算(两分钟算完CC)。CC算法最大问题是耗时,尤其是用MATLAB来时,这点也是MATLAB的短板,我想近几年也不会避免的。原因很简单:简单的操作下是低效的内存使用。

MATLAB
为方便各种人士使用,甚至号称不需懂程序语言的人也可用。事实也是如此,的确好用。但在MATLAB做大型计算(CC可能不算大)时,大量的内存操作则要了它的命。我们在程序中无意间动态定义一个大的数组或小的数组,在循环计算时不断消耗计算机内存(操作系统发现内存不够时就会将现有内存信息交换到硬盘,以腾出空间,完后再换回来。内存还不够则就从硬盘上虚拟内存,但是速度是硬盘的速度),最后导致大量时间消耗在内存的存取上,而不是真正的计算上。
   有时,错觉会让我们相信MATLAB正在计算,事实是正在读取内存。CC算法的计算复杂程序并不高,MATLAB对内存的作用效率有时会取决于人员对算法的调整与内存软硬件的理论上,这是很要命的。举个例子,在函数传递数组的过程中,函数内外存取的数组本可以是同一个内存空间,但实际却是一个复制品,这样就消耗了时间。好比你想参观朋友的房子,肯定不想让朋友再造个一模一样的房子让你看吧,你只需进入朋友的房子即可。
  目前,如果想快速计算,用MATLABVC++结合是一个好的选择。这是强者的结合,MATLAB在函数、算法功能方面有优势,VC++在内存操作上也是无人能及的。如果你只关注计算过程与结果,VC++是最好的选择,它并不要求你掌握好VC的复杂内容与技艺,甚至你只要懂C语言就行了,不过你不能开发VC++带界面的程序而已。

评分

1

查看全部评分

回复
分享到:

使用道具 举报

发表于 2008-4-2 17:05 | 显示全部楼层

回复 楼主 的帖子

楼主能否给个链接是哪个帖子,也方便大家联系起来看,另外我也好给她/他加分
发表于 2008-4-3 11:45 | 显示全部楼层
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-21 13:32 , Processed in 0.055837 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表