我有一组随机的点,我想将它们绘制成不同的类(颜色)。我知道如何根据不同的功能对它们进行分类,我在下面展示了一个示例。问题是我知道我想要的分类区域,例如从 (0,0.1) 到 (0.7,1),但我不知道什么函数可以实现这一点或如何解决它们。
x = rand(500,1);
y = rand(500,1);
g(:,1) = 1-x;
g(:,2)= 1 -y;
[~,la] = max(g'); % find the labels
figure, hold on
plot(x(la==1),y(la==1),'k.','MarkerSize',8)
plot(x(la==2),y(la==2),'r.','MarkerSize',8)
grid on,xlabel('x_1'),ylabel('x_2')
这是一个使用一些基本函数来创建下图的示例。目前我正在使用试错法,但我怎么能使用与上面相同的想法,但绘制我知道上面提到的端点的区域。
编辑:使用 am304 解决方案。我得到了正确的输出,但是像这样更复杂的情节似乎可以简化很多。
x = rand(500,1);
y = rand(500,1);
p = polyfit([0 0.7],[0.1 1],1);
p2 = polyfit([0.4 1],[1 0],1);
p3 = polyfit([0 1],[0.3 0.6],1);
figure
hold on
plot(x,y,'m.','MarkerSize',8)
plot(x(y>=polyval(p,x) & y<=polyval(p2,x) & y>=polyval(p3,x)),y(y>=polyval(p,x) & y<=polyval(p2,x) & y>=polyval(p3,x)),'y.','MarkerSize',8)
plot(x(y>=polyval(p2,x) & y<=polyval(p,x) & y>=polyval(p3,x)),y(y>=polyval(p2,x) & y<=polyval(p,x) & y>=polyval(p3,x)),'r.','MarkerSize',8)
plot(x(y<=polyval(p3,x) & y<=polyval(p,x) & y<=polyval(p2,x)),y(y<=polyval(p3,x) & y<=polyval(p,x) & y<=polyval(p2,x)),'g.','MarkerSize',8)
plot([0 0.7],[0.1 1],'k-')
plot([0.4 1],[1 0],'k-')
plot([0 1],[0.3 0.6],'k-')
grid on,xlabel('x_1'),ylabel('x_2')