【发布时间】:2014-08-24 03:41:46
【问题描述】:
在一个函数中,我有几个 disp() 实例来帮助跟踪长时间计算过程的进度。
例如,
function myfun(inputs)
...
disp('Step i finished')
...
end
在myfun 的其他一些用法中,没有disp() 消息更方便。有没有办法在不添加新代码或使用eval() 函数的情况下抑制命令行中的“步骤我完成”消息?
注意:eval() 对于任何严肃的计算来说都太慢了。
【问题讨论】:
-
我认为
evalc()是唯一的办法。 -
据我所知,
eval()和evalc()对性能的影响应该为零。您究竟是如何测试这些得出这个结论的? -
@RodyOldenhuis
eval或evalc中的代码不会被 JIT 加速(因为评估的代码可能会在运行时更改为任何内容),因此它会对性能产生很大影响。 -
@SamRoberts:你有相关文档的链接吗?我怀疑这将是索赔,但我的(诚然简单的)测试表明并非如此......
-
@RodyOldenhuis 输入
doc eval,然后点击底部的“替代评估函数”。它在“为什么要避免使用 eval 函数”部分。请注意,如果从函数中调用eval,就会发生这种情况;我不确定如果您从命令行调用eval会发生什么。
标签: matlab