【发布时间】:2016-12-02 13:49:57
【问题描述】:
我创建了一个这样的匿名函数句柄:
f = @(x,y)sqr(x)+sqr(y)
这是一个包含两个变量 x 和 y 的球体。它似乎有效,因为我可以调用类似的东西
f(2,3)
MATLAB 给了我正确的结果ans = 13。
在最后一步中,我想为x 和y 绘制从-7 到7 的函数。所以我打电话
fmesh(f,[-7 7])
然后右图弹出。到目前为止,一切顺利。
出于某些我不想在此处指定的原因,我现在想将函数句柄编辑为:
f = @(x)sqr(x(1))+sqr(x(2))
这应该是同一个球体,但这次有两个变量 x(1) 和 x(2)。
由于该函数现在需要一个数组作为参数,因此我编辑了测试调用
f([2,3])
它仍然给了我正确的结果ans = 13。
但问题是:如何绘制需要数组作为参数的函数?
与之前相同的网格命令当然会失败,因为[-7,7] 的尺寸错误。 [[-7 7] [-7 7]] 和 [[-7 7];[-7 7]] 也是如此。
我怎样才能从那个新的函数句柄中得到一个工作图? 提前致谢!
【问题讨论】:
-
你真的不能那样做。您可以将
f包装在另一个匿名函数中,该函数接受两个输入并创建一个:g = @(x,y)f([x,y])
标签: matlab plot anonymous-function