Matlab,隐式,如何使用不等式在图形上显示指定区域

Matlab, fimplicit, how to show a specified region on graph using an inequality

我正在使用 fimplicit 命令生成图表,但我的条件是 x+y<=1,我只想显示图表的那个区域。

示例:f = @(x,y) x.^2 + y.^2 - 3; fimplicit(f,[-3 3 -2 2])

如果fimplicit中没有这样的选项,我也欢迎在绘制fimplicit后修改图形的建议。 PS。当然,我的功能不是上面那个,复杂的多,所以我觉得在这个post这里用一个简单的例子会有用。顺便说一下,简单地将 -3 和 -2 更改为 0 以及 3 和 2 更改为 1 对我的原始函数不起作用。或者,对我的情况有用的方法是将图形绘制为白色,用于我不可见的部分,例如 x+y>=1,但我不知道该怎么做。

如果您使用普通函数句柄而不是匿名函数句柄,您将可以更好地控制该函数的输出值。在单独的 .m 文件中创建此函数:

function val = fun(x, y)
    val = x.^2 + y.^2 - 3;  
    val(x+y>1) = NaN;
end

然后这样称呼它:

fimplicit(@fun, [-3 3 -2 2])

我终于解决了我的问题,使用 patch 命令。

我只是为不想显示的区域画了一个多边形,然后select填充颜色为白色。下面,我为x+y大于1的值画了一个三角形,并用白色填充。

v = [0 1; 1 0; 1 1]; 
f = [1 2 3]; 
patch('Faces',f,'Vertices',v,'FaceColor','white')