如何让matlab全速运行,提高matlab代码运行效率 | 您所在的位置:网站首页 › matlab运行库用作商用 › 如何让matlab全速运行,提高matlab代码运行效率 |
提高matlab代码运行效率 Matlab是一种解释性语言,追求的是方便性、灵活性以及交互性,因此在快速性上要比C语言这种性能强劲著称的稍逊一筹。然而,通过一些手段,我们也能让MATLAB语言快起来,甚至和C差不多了! 1可行方法 1.1循环矢量化 MATLAB变量的基本类型是矩阵,当对矩阵的每个元素循环处理时,运算速度很慢。利用MATLAB提供的用于矢量化操作的函数,把循环矢量化,这样既可以提高编程效率,也可以提高程序的执行效率。下面给出一个循环的例子: 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函数来查看上述各代码运行的时间,可以发现,把数组看作一个整体,进行操作后,执行效率提高约300倍。 另外,在必须使用多重循环的情况下,建议在循环的外环执行循环次数少的,内环执行循环次数多的,这样也可以显著提高程序执行速度。 下面再举一个例子 n = 100; A(1:1000,1:1000) = 13; C(1:1000,1) = 15; D(1:1000,1) = 0; for k = 1:n D(:) = 0; tic for i = 1:1000 for j = 1:1000 D(i) = D(i) + A(i,j)*C(j); end end t1(k) = toc; %------------------ D(:) = 0; tic D = A*C; t2(k) = toc; end u = t1./t2; u(u10^9) = []; plot([t1;t2]') t1、t2分别表示预先分配空间和循环中分配空间的时间,下图上面一条t2、一条t1 |
CopyRight 2018-2019 实验室设备网 版权所有 |