什么时候需要评估功能?

时间:2016-05-23 20:12:39

标签: matlab eval

我刚刚阅读了MathWorks的following article,其中介绍了避免eval函数的重要性,并列出了许多eval常见用法的替代方法。

阅读完文章后,我的印象是eval功能既无用也无必要。所以,我的问题是: 时需要eval函数吗?

2 个答案:

答案 0 :(得分:7)

我发现eval只有一个有用的案例,然后是evalc种类:当调用内置命令行回调函数时(例如没有;的行或者disp来电,您无法修改。例如,当你有一些混淆的函数将大量的东西转储到你的命令窗口时。在这种情况下,最好尝试获取源代码以根据您的需要进行修改,因为使用evalc会破坏您的性能。否则,我没有找到eval是最佳解决方案的案例。

我写了一篇详尽的回答,详细说明了为什么你应尽量避免evalHow to put these images together?

答案 1 :(得分:-3)

在尝试创建具有不同名称的多个数组时,我已经使用了eval。这不是真的推荐,但它适用于我的特定应用程序。例如,如果我想要具有特定名称“matrix1”“matrix2”...“matrixN”的N个矩阵,一种解决方案是手动将它们输入为“matrix1 = something”......“matrixN = somethingelse”。如果N非常大,这并不理想。使用eval,您可以设置一个for循环,它将在每个循环上更改矩阵的名称,并根据相同的N值计算某个值。

当然,理想情况下将它们保存到单元格会更好,但我需要采用我所描述的格式的数组。

相关问题