分享

为什么Matlab的矩阵变量建议预定义其大小

 龙在天中 2018-02-04

当用Matlab编程时,假如某个矩阵的大小提前不知道,而在循环过程中,该矩阵会不断增大,则会出现如下提示:

警告:变量A似乎会随脚本中迭代次数而改变,请预分配内存以获得更高的运算速度。

那为什么Matlab的矩阵变量要预定义其大小呢?

1、问题示例

比如有如下一段代码。

为什么Matlab的矩阵变量建议预定义其大小

为什么Matlab的矩阵变量建议预定义其大小

2、原因分析

为什么Matlab的矩阵变量建议预定义其大小

3、解决办法

预先定义矩阵变量的大小。当矩阵变量预先定义其大小时,Matlab在计算之前就会一次性找到最合适的块,从而避免因内存不连续,在为矩阵变量动态分配内存时出现错误。

修改如下,根据矩阵估算的大小,提前定义矩阵大小,数值矩阵可用zeros或ones命令来创建,字符矩阵可用cell命令来创建。

为什么Matlab的矩阵变量建议预定义其大小

PS:当For循环的次数比较少,而计算机的连续内存又足够时,A矩阵的大小即使不提前定义,程序也是可以运行的。

为什么Matlab的矩阵变量建议预定义其大小

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多