主要内容

预先分配

为了尽管循环,逐步增加数据结构的大小,每次都会通过循环对性能和内存使用产生不利影响。反复调整阵列通常需要matlab®花费额外的时间来寻找更大的邻接内存块,然后将数组移动到这些块中。通常,您可以通过preAlating阵列所需的最大空间量来改进代码执行时间。

以下代码显示创建标量变量所需的时间量,X,然后逐渐增加大小X在一个为了环形。

Tic x = 0;k = 2:1000000 x(k)= x(k-1)+ 5;结束TOC.
经过时间为0.301528秒。

如果您预先利用1,000,000块内存块X并将其初始化为零,然后代码运行得更快,因为无需重复重新分配越来越多的数据结构内存。

Tic x =零(1,1000000);k = 2:1000000 x(k)= x(k-1)+ 5;结束TOC.
经过时间为0.011938秒。

使用您要初始化的阵列类型的适当预次级函数:

  • Zeros.对于数字阵列

  • 对于字符串阵列

  • 细胞对于细胞阵列

  • 桌子对于表阵列

预先曝光一个非双矩阵

当您预配一块内存块以保存除此之外的某种类型的矩阵双倍的,避免使用该方法

A = INT8(零(100));

该声明预先释放100×100矩阵INT8.,首先创建一个完整的矩阵双倍的值,然后通过将每个元素转换为INT8.。创建数组为INT8.值可节省时间和内存。例如:

A =零(100,'INT8');

相关例子

更多关于