Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wolfram mathematica 常规::ivar:。。。不是有效的变量_Wolfram Mathematica - Fatal编程技术网

Wolfram mathematica 常规::ivar:。。。不是有效的变量

Wolfram mathematica 常规::ivar:。。。不是有效的变量,wolfram-mathematica,Wolfram Mathematica,我一直在试图破译这个输出意味着什么,但我似乎无法理解它。有人知道这里发生了什么吗 我甚至尝试过一行一行地运行这些行,错误只会在执行最终的行显示时出现。单独遍历这些行不会向您显示发生了什么,您必须分解给您带来麻烦的语句:在这种情况下,show[p1,p2[1,1].就其本身而言,p1和Show都不会给您带来麻烦,从而得出结论,它一定是p2[1,1]。这是通过自行运行它而产生的,这会产生相同的错误 这会因为Plot、Plot3D等如何计算函数参数而产生错误。通常,它们基本上会替换函数的文本,并且可能

我一直在试图破译这个输出意味着什么,但我似乎无法理解它。有人知道这里发生了什么吗


我甚至尝试过一行一行地运行这些行,错误只会在执行最终的行显示时出现。

单独遍历这些行不会向您显示发生了什么,您必须分解给您带来麻烦的语句:在这种情况下,show[p1,p2[1,1].就其本身而言,p1和Show都不会给您带来麻烦,从而得出结论,它一定是p2[1,1]。这是通过自行运行它而产生的,这会产生相同的错误

这会因为Plot、Plot3D等如何计算函数参数而产生错误。通常,它们基本上会替换函数的文本,并且可能不会展开函数调用。一个简单的修复方法是将p2重写为


这样可以消除错误。Evaluate可确保在Plot3D获得函数之前以符号方式对其进行求值,以避免任何错误处理。我希望我能更好地了解在这些情况下何时使用Evaluate,但如果通常情况下,您从类似的绘图函数中获得错误,则很可能是对函数的错误处理

单独一行一行地走一遍并不能告诉你发生了什么,你必须把给你带来麻烦的语句拆开:在这种情况下,show[p1,p2[1,1]。p1和show本身都不应该给你带来麻烦,这就得出结论,它一定是p2[1,1].这是通过运行它本身产生的,它会产生相同的错误

这会因为Plot、Plot3D等如何计算函数参数而产生错误。通常,它们基本上会替换函数的文本,并且可能不会展开函数调用。一个简单的修复方法是将p2重写为


这样可以消除错误。Evaluate可确保在Plot3D获得函数之前以符号方式对其进行求值,以避免任何错误处理。我希望我能更好地了解在这些情况下何时使用Evaluate,但如果通常情况下,您从类似的绘图函数中获得错误,则很可能是对函数的错误处理

很好的回答,Evaluate是解决这个问题的方法。我要说的一点是,从技术上讲,它实际上并不是用来为x和y设置值的Replace。它是Block。这就是为什么这个方法有效,尽管Plot的第一个参数中没有p:e=p^2;Plot[e,{p,0,1}]@Andrew,我不确定到底是什么导致了这个问题,它的行为似乎有点像替换,但将所有内容都包装在一个块中对于错误和良好实践来说都很有意义。很好的答案,评估是解决这个问题的方法。我要说的一点是,从技术上讲,实际上不是替换有效在这里,y用来设置x和y的值。这是块。这就是为什么这样做的原因,尽管p不存在于Plot的第一个文本参数中:e=p^2;Plot[e,{p,0,1}]@Andrew,我不确定到底是什么导致了这个问题,它的行为似乎有点像Replace,但将所有内容都包装在一个块中对于错误和良好实践都很有意义。
p2[x0_, y0_] := Plot3D[Evaluate[p[x, y, x0, y0]], {x, 0, 2}, {y, 0, 2}]