绘制两个变量的函数和逐点最小化

Plotting a function of two variables and pointwise minimization

如何在 MATLAB 中绘制以下函数的 3d 图?

f(x,y)=log(1+ (min(x,y))^2/(4*y));

我想创建一个 f 的 3d 图作为 xy 的函数。 xy 是非负数,因此它们的范围可以从 0 到任何正数,例如 10。

我尝试用 surfmeshgrid 绘制它,但它没有用,因为我有一个逐点最小化。

首先,使用 meshgrid 创建 x 和 y :

[x,y] = meshgrid(0:0.5:10,0:0.5:10);

然后计算函数并绘图:

k(:,:,1)=x;
k(:,:,2)=y;
% because x and y are 2d matrices in meshgrid, I defined 3d matrix k to compute minimum in third dimension:
z=log((1+ (min(k,[],3)).^2)./(4*y));
surf(x,y,z)