我一直试图破译这个输出意味着什么,但我似乎无法弄明白。有人知道这里发生了什么吗?
我甚至尝试逐行运行这些行,只有在执行最后一行(show)时才会显示错误。
答案 0 :(得分:6)
单独逐行单独行不会告诉你发生了什么,你必须拆开给你麻烦的陈述:在这种情况下,Show[p1, p2[1,1]
。 p1
和Show
都不能给你带来麻烦,这导致得出的结论是p2[1,1]
。这是通过自己运行它产生的,这会产生相同的错误。
由于Plot
,Plot3D
等方式评估函数参数,因此会生成错误。通常,它们基本上对函数的文本执行Replace
,并且可能不会扩展函数调用。一个简单的解决方法是将p2
重写为
p2[x0_, y0_] := Plot3D[Evaluate[p[x, y, x0, y0]], {x, 0, 2}, {y, 0, 2}]
摆脱了错误。 Evaluate
确保在Plot3D
获取函数之前以符号方式评估函数,避免任何错误处理。我希望我能更好地了解在这些情况下何时使用Evaluate
,但如果你从这样的绘图函数中获得错误,那么很可能是错误处理函数。