MATLAB:预分配矩阵产生误差

Pie*_*ter 2 matlab

我正在编写一个简单的MATLAB程序来解决项目Euler问题.

该程序创建一个900 x 900矩阵.在程序创建此矩阵之前c,我按以下方式预先分配它:

c = zeros(900,900);
Run Code Online (Sandbox Code Playgroud)

这会产生橙色错误消息:"分配给变量'c'的值可能未使用".

在程序的后面,矩阵c充满了数字.那么为什么错误信息呢?

小智 6

这是一条mlint WARNING消息.不是真正的错误.错误将阻止您的代码运行.mlint警告仅表明效率低下,这可能是您的代码无法有效编写的.

无需预先分配将重新分配的数组.事实上,你的第一个任务在这里毫无用处.稍后在您的代码中,您将c定义为两个向量的乘积的结果.因此,matlab完全忽略了你在第一步中所做的事情.所以这种说法确实被浪费了,因此应该放弃.

通常,只预先分配一个数组,稍后您可以在该循环中仅分配该数组的单个元素(或一小组元素).