我正在编写一个简单的MATLAB程序来解决项目Euler问题.
该程序创建一个900 x 900矩阵.在程序创建此矩阵之前c,我按以下方式预先分配它:
c = zeros(900,900);
Run Code Online (Sandbox Code Playgroud)
这会产生橙色错误消息:"分配给变量'c'的值可能未使用".
在程序的后面,矩阵c充满了数字.那么为什么错误信息呢?
小智 6
这是一条mlint WARNING消息.不是真正的错误.错误将阻止您的代码运行.mlint警告仅表明效率低下,这可能是您的代码无法有效编写的.
无需预先分配将重新分配的数组.事实上,你的第一个任务在这里毫无用处.稍后在您的代码中,您将c定义为两个向量的乘积的结果.因此,matlab完全忽略了你在第一步中所做的事情.所以这种说法确实被浪费了,因此应该放弃.
通常,只预先分配一个数组,稍后您可以在该循环中仅分配该数组的单个元素(或一小组元素).