当用Matlab编程时,假如某个矩阵的大小提前不知道,而在循环过程中,该矩阵会不断增大,则会出现如下提示:
那为什么Matlab的矩阵变量要预定义其大小呢? 1、问题示例比如有如下一段代码。 2、原因分析3、解决办法预先定义矩阵变量的大小。当矩阵变量预先定义其大小时,Matlab在计算之前就会一次性找到最合适的块,从而避免因内存不连续,在为矩阵变量动态分配内存时出现错误。 修改如下,根据矩阵估算的大小,提前定义矩阵大小,数值矩阵可用zeros或ones命令来创建,字符矩阵可用cell命令来创建。 PS:当For循环的次数比较少,而计算机的连续内存又足够时,A矩阵的大小即使不提前定义,程序也是可以运行的。 |
|