所有点的绘图集满足属性MATLAB

时间:2014-10-10 20:42:35

标签: matlab plot set

我想绘制满足条件的一组点,例如:

{(x,y) : x+y = 1}{(x,y) : -xlog(x)-ylog(y)>10}{(x,y,z) : x + yz^2 < 2} (或任何其他财产)。

我找不到如何在matlab中绘制这些东西(我发现只有如何绘制函数,无法找到如何在平面中绘制集合)。任何帮助都将受到欢迎。

谢谢

1 个答案:

答案 0 :(得分:3)

平等和不平等的条件是两个根本不同的问题。

相等的情况下,您可以为x提供值并为y求解。在您的示例中:

x = linspace(-10,10,1000); %// values of x
y = 1-x; %// your equation, solved for y
plot(x,y, '.', 'markersize', 1) %// plot points ...
plot(x,y, '-', 'linewidth', 1) %// ... or plot lines joining the points

enter image description here

对于不等式,您会生成一个xy点的网格(例如,使用ndgrid)并仅保留满足您条件的网格。在您的示例中:

[x, y] = ndgrid(linspace(-10,10)); %// values of x, y
ind = -x.*log(x)-y.*log(y)>10; %// logical index for values that fulfill the condition
plot(x(ind), y(ind), '.'); %// plot only the values given by ind

enter image description here

对于 3D ,这个想法是一样的,但您使用plot3进行绘图。在这种情况下,可能更难从图中看到该组的形状。在您的示例中:

[x y z] = ndgrid(linspace(-10,10,100));
ind = x + y.*z.^2 < 2;
plot3(x(ind), y(ind), z(ind), '.', 'markersize', 1);

enter image description here