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

时间:2017-12-14 13:36:44

标签: matlab matlab-figure

我使用fimplicit命令来生成图形,但是我的条件是x + y <= 1,我只希望显示图形的那个区域。

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

如果在隐含的内容中没有这样的选项,我也会在绘制隐藏的内容后提出修改数字的建议。 PS。当然,我的功能不是上面那个,它很复杂,所以我认为在这篇文章中使用一个简单的例子是有用的。顺便说一句,简单地将-3和-2更改为0以及将3和2更改为1将不适用于我的原始函数。或者,对我的情况有用的是将图形绘制为白色,以显示我不可见的部分,例如x + y&gt; = 1,但我不知道该怎么做。

2 个答案:

答案 0 :(得分: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])

答案 1 :(得分:0)

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

我只是为我不想看到的区域绘制一个多边形,然后选择填充颜色为白色。下面,我为x + y大于1的值绘制一个三角形,并将它们填充为白色。

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