matlab矩阵变量有可变化的行数和列数。

比如:


matlab可以自动变化矩阵的维数。这时,matlab需要分配给矩阵更多的内存。

如果在一个循环中,有矩阵不断变化着自己的维数,重新分配内存将十分耗时。

为了避免重复分配内存,可以先将内存分配好,再进行运算。


上面这段代码运行时间为0.47s.

下面用zeros函数预先分配好内存,这样的代码为:


这时,再运行这段代码,运行时间为:0.14s.

预分配内存同样适用于cell数组, 用cell函数可以直接先创建所需大小的cell数组。