matlab矩阵变量有可变化的行数和列数。
比如:
matlab可以自动变化矩阵的维数。这时,matlab需要分配给矩阵更多的内存。
如果在一个循环中,有矩阵不断变化着自己的维数,重新分配内存将十分耗时。
为了避免重复分配内存,可以先将内存分配好,再进行运算。
上面这段代码运行时间为0.47s.
下面用zeros函数预先分配好内存,这样的代码为:
这时,再运行这段代码,运行时间为:0.14s.
预分配内存同样适用于cell数组, 用cell函数可以直接先创建所需大小的cell数组。