simple will be removed in a future release. Use simplify instead.

matlab 中使用语句 pretty(simple(x))后出现的警示,新手不懂,求高手解释。

很简单,就是说 simple 这个函数在将来的版本中会被删除,请使用 simplify 替代之。

题主使用的应该是2013b、2014a或2014b这三个版本之一。
从Release Notes看,是从2013b开始计划删除simple函数的,到2015a正式被删。如果使用该函数,中间的三个过渡版本会给出警告信息,而2015a之后则会报错。

simple函数与simplify的差别是,simple会尝试多种代数化简函数(如simplify、radsimp、combine、factor、expand等),试图得到一个“最简”的形式。而所谓的“最简”,从数学意义上并没有统一的观点,因为一种形式对于某个问题而言是最简的,而对另一种问题可能就是复杂的,甚至是完全不适用的。simple所谓的最简,是指表达式“最短”。

例如:
>> syms x
>> z = (cos(x)^2 - sin(x)^2)*sin(2*x)*(exp(2*x) - 2*exp(x) + 1)/(exp(2*x) - 1);
>> simplify(z)
ans =
(sin(4*x)*(exp(x) - 1))/(2*(exp(x) + 1))

>> f=simple(z)
Warning: Function 'simple' will be removed in a future release. Use 'simplify' instead.
> In sym.simple at 41
f =
(sin(4*x)*tanh(x/2))/2

搞不明白MathWorks官方是怎样考虑的,为什么要删去simple函数,而代之以simplify。这样不仅是功能上弱化了,而且会引起一些兼容性问题。其实我觉得保留simple函数,用户爱用哪个用哪个,也许是一个更好的选择。追问

那就是说改用simplify就可以达到simple的效果,而且不会有警告了,是吗?

追答

晕。。。我说了这么多,还没说明白吗?
再说,您试一下不就知道了?

1、改用simplify不会有警告;
2、是否【可以达到simple的效果】,要看具体的问题。大多数情况下能达到,但有些情况下可能达不到,例如上面举的例子。当然,对于题主这个简单的问题,应该是可以的。

温馨提示:答案为网友推荐,仅供参考
相似回答