[Matlab]提高程序运行效率的方法[转]

1. 循环矢量化
Matlab是为矢量和矩阵操作而设计的,因此,可以通过矢量化方法加速M文件的运行。矢量化是指将for循环和while循环转换为等价的矢量或矩阵操作。下面给出一个循环的例子:
i=0;
for n = 0:0.1:1000
    i=i+1;
    y(i)=cos(n);
end
那么我们可以矢量化为:
n= 0:0.1:1000;
y=cos(n);
我们可以用tic和toc函数来查看上述各代码运行的时间,采用for循环的程序0.39秒(具体时间和计算机配置有关),而矢量化后几乎耗时为0。

2. 给数组或矩阵预分配内存
    特别是使用大型数组或矩阵时,Matlab进行动态内存分配和取消时,可能会产生内存碎片,这将导致大量闲置内存产生,预分配可通过提前给大型数据结构预约足够空间来避免这个问题。

3. 用函数代替脚本文件
    因为每次调用MATLAB的脚本文件都需要将不必要的中间变量加载到内存中,每执行一次,就加载一次。函数在调用时被编译成了伪代码,只需要加载到内存一次。当多次调用同一个函数时会运行快一些。因此尽量多使用函数文件而少使用脚本文件,也是提高执行效率的一种方法。

4. 用Mex文件编写循环代码
    Matlab提供了与C和C++的接口,那么我们可以在用C或C++语言编写耗时的循环代码,然后通过接口程序在Matlab中转换成dll文件,这就是我们所要的Mex文件,通过这种方法可以极大地提高计算速率。

时间: 2024-10-06 09:47:43

[Matlab]提高程序运行效率的方法[转]的相关文章

改善C#程序,提高程序运行效率的50种方法

改善C#程序,提高程序运行效率的50种方法 转自:http://blog.sina.com.cn/s/blog_6f7a7fb501017p8a.html 一.用属性代替可访问的字段 1..NET数据绑定只支持数据绑定,使用属性可以获得数据绑定的好处: 2.在属性的get和set访问器重可使用lock添加多线程的支持. 二.readonly(运行时常量)和const(编译时常量) 1.const只可用于基元类型.枚举.字符串,而readonly则可以是任何的类型: 2.const在编译时将替换成

C与C++中的常用提高程序效率的方法

1.用a++和++a及a+=1代替a=a+1,用a--和--a及a-=1代替a=a-1 通常使用若把一个函数定义为内联函数,则在程序编译阶段,编译器就会把每次调用该函数的地方都直接替换为该函数体中的代码,因此省却了函数的调用及相应的保护现场.参数传递和返回等操作,从而加快了整个程序的执行速度.总之,存储单元.声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元.所以引用传递是比非引用传递快的. 而

50个提高PHP程序运行效率的方法

0.用单引号代替双引号来包含字符串,这样做会更快一些.因为 PHP 会在双引号包围的 字符串中搜寻变量,单引号则不会,注意:只有 echo 能这么做,它是一种可以把多个字符 串当作参数的“函数”(译注:PHP 手册中说 echo 是语言结构,不是真正的函数,故把函数 加上了双引号). 1.如果能将类的方法定义成 static,就尽量定义成 static,它的速度会提升将近 4 倍. 2.$row[’id’] 的速度是$row[id]的 7 倍. 3.echo 比 print 快,并且使用 ech

提高PHP程序运行效率的方法

1.在可以用file_get_contents替代file.fopen.feof.fgets等系列方法的情况下,尽量用 file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题; 2.尽量的少进行文件操作,虽然PHP的文件操作效率也不低的; 3.优化Select SQL语句,在可能的情况下尽量少的进行Insert.Update操作(在update上,我被恶批过); 4.尽可能的使用PHP内部函数(但是我却为了找个

C++程序运行效率的10个简单方法

深圳中心C++教研部 韩老师 对于每一个程序员来说,程序的运行效率都是一个值得重视,并为之付出努力的问题.本文介绍提高C++程序运行效率的10个简单方法,包括循环.变量.继承等应用的技巧,非常具有实用价值,具体分析如下: 一.尽量减少值传递,多采用引用来传递参数 如果参数是int等语言自定义的类型可能对性能的影响不是很大,但是如果参数是一个类的对象,那么其效率问题就非常突出了.例如一个判断两个字符串是否相等的函数,其声明如下: 其中若使用第一个函数(值传递),则在参数传递和函数返回时,需要调用S

什么方法可以显著提高程序员工作效率

注:也许你见到过一种人,好像同样没完没了的加班,却在你不知道的时候额外学习补充,几年过后晋级Boss.大牛,而你依然是个渣,虽然不尽是.但工作效率在这中间确实起到了重要作用.不要提EQ.IQ,现在还能靠敲代码吃饭,大部分人的智商差异都不大,特别和坐在你身边的那位.今天我们一起探讨下提高工作效率的方法,验证一下细节决定成败.本文多数答案来自知乎. 先分享一些:11个小技巧提高程序员工作效率,小习惯更重要(认可度很高哦) [facebook]程序猿提高工作效率的15点技巧 想提升工作效率应该注意的七

提高Python运行效率的六个窍门

曾灵敏 - MAY 18, 2015Python是一门优秀的语言,它能让你在短时间内通过极少量代码就能完成许多操作.不仅如此,它还轻松支持多任务处理,比如多进程. 不喜欢Python的人经常会吐嘈Python运行太慢.但是,事实并非如此.尝试以下六个窍门,来为你的Python应用提速. 窍门一:关键代码使用外部功能包 Python简化了许多编程任务,但是对于一些时间敏感的任务,它的表现经常不尽人意.使用C/C++或机器语言的外部功能包处理时间敏感任务,可以有效提高应用的运行效率.这些功能包往往依

java技巧--提高代码运行效率

java技巧--提高代码运行效率 1.尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面 第一,控制资源的使用,通过线程同步来控制资源的并发访问 第二,控制实例的产生,以达到节约资源的目的 第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信 - 2.尽量避免随意使用静态变量 要知道,当某个对象被定义为stataic变量所引用,那么gc通常是不会回收这个对象所占有的

ABAP程序编写过程中怎么提高程序执行效率一

影响ABAP程序的运行效率主要是在程序中大量数据的取得,如果取数不得方法,很影响报表的运行效率,所有优化ABAP程序主要是优化数据取数的方法.下面这几点可以有效的提高取数的效率,从而来提高程序的运行效率. 1.选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 drivingtable)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.如果有3个以上的表连