在这种情况下如何删除预分配警告

NKN*_*NKN 2 matlab allocation

使用for循环绘制一组图形时,例如:

for ei=1:length(E),
  hnds(ei) = plot(1:nP, avgR(ei,:), [clrStr(ei),'-'] ); 
end 
Run Code Online (Sandbox Code Playgroud)

hnds(ei)变量的代码中有一个(著名的)警告:

变量hnds(ei)似乎在每次循环迭代时都会更改大小。考虑预先分配速度。

但是,当我尝试预分配变量时:

hnds = zeros(1,length(E));
Run Code Online (Sandbox Code Playgroud)

此新行还有另一条警告,在预分配的详细信息中说:

建议的操作:避免将内存预先分配给分配给另一个函数输出的变量。

有什么办法可以消除此警告,还是应该忽略它?

Cit*_*ane 5

只需%#ok在行的末尾添加特殊注释,它将禁用与此行相关的所有警告:

hnds = zeros(1,length(E)); %#ok
Run Code Online (Sandbox Code Playgroud)

您也可以使用特殊%#ok<specific1, ...>注释来禁用非常特定的警告,而不禁用其他警告。检查此链接以获取更多详细信息。