从M文件中在Matlab中绘制3D函数

时间:2014-08-20 22:12:08

标签: matlab optimization graph

我正在尝试绘制一个在单独的M文件中定义的令人讨厌的三维函数。 它是这样的:

function objfun = equilibrium(v)
x = v(1);
y = v(2);
%nasty function where objfun(x,y) = objfun
objfun = *nasty function in 2 variables*

现在我一直试图绘制f(x,y),但我不知道该怎么做。

我一直在尝试这个:

[x,y] = meshgrid(0:1,0:1);
f = equilibrium([x,y]);
tri = delaunay(x,y);
trisurf(tri,x,y,f);

但显然这并没有给我一个@equilibrium值的向量,所以没有表面可以绘制。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

step = 0.25;
x = 0:step:1;
y = 0:step:1;

[XX YY] = meshgrid(x, y);

for i = 1:size(XX, 1)
   for j = 1:size(YY, 2)
      ZZ(i,j) = nasty_3_dimension_function([XX(i,j) YY(i,j)]);
   end
end

surf(XX, YY, ZZ)