【发布时间】:2016-05-23 07:25:40
【问题描述】:
我有一个类似的功能
f = @(x) x(1).^2 + x(2);
我想通过surf绘制它的情节,所以我使用meshgrid生成输入数据:
[x, y] = meshgrid(-2:.2:2);
但是如果我尝试将它传递给这样的函数
z = f([x; y])
我在结果中只得到一个值。
除了制作一个接受两个参数(x,y)而不是向量的函数之外,还有其他方法吗?
【问题讨论】:
-
你确定需要让你的函数接受两个参数吗?你为什么不想呢?
-
fminsearch、nonlin_min等函数想要这种形式,所以我需要使用匿名函数将向量转换为 x、y。 -
那么你有两个选择,要么使用包装函数将其从一种形式转换为另一种形式(我会将其添加到我的答案中),要么像我展示的那样矢量化你的函数
f我回答的第一个例子。如果您使用fminsearch添加您的实际问题,而不是使用surf顺便说一句,这将更有意义。