Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 绘制线性决策边界_Matlab_Plot_Regression_Mle - Fatal编程技术网

Matlab 绘制线性决策边界

Matlab 绘制线性决策边界,matlab,plot,regression,mle,Matlab,Plot,Regression,Mle,我有一组数据点(40 x 2),我推导了决策边界的公式,结果如下: wk*X + w0 = 0 wk是1 x 2向量,x是数据点集中的2 x 1点;本质上是X=(xi,yi),其中i=1,2,…,40。我有wk和w0的值 我正试图绘制这条线,但我不知道如何绘制实际的线。在过去,我通过查找数据点的最小值和最大值并将它们连接在一起来实现这一点,但这绝对不是正确的方法 wk*X只是两个向量之间的点积,因此方程变成: w1*x + w2*y + w0 = 0 。。。假设一般点(x,y)。如果我们重新

我有一组数据点(40 x 2),我推导了决策边界的公式,结果如下:

wk*X + w0 = 0
wk
是1 x 2向量,
x
是数据点集中的2 x 1点;本质上是
X=(xi,yi)
,其中i=1,2,…,40。我有
wk
w0
的值


我正试图绘制这条线,但我不知道如何绘制实际的线。在过去,我通过查找数据点的最小值和最大值并将它们连接在一起来实现这一点,但这绝对不是正确的方法

wk*X
只是两个向量之间的点积,因此方程变成:

w1*x + w2*y + w0 = 0
。。。假设一般点
(x,y)
。如果我们重新排列这个方程并求解
y
,我们得到:

y = -(w1/w2)*x - (w0/w2)
因此,这定义了一个直线方程,其中斜率为
-(w1/w2)
,截距为
-(w0/w2)
。你所要做的就是在一定范围内定义一组线性间隔的点,取每个点,代入上面的方程,得到一个输出。您将在图中绘制所有这些输出点以及实际点本身。您可以使点之间的空间或分辨率足够小,以便在将所有点连接在一起时可以看到一条线

要确定这条线的范围或限制,请计算出数据中最小和最大的
x
值,在这些值之间定义一组线性间隔的点,并使用我们刚才讨论的直线方程绘制直线

假设您有一个存储在
X
中的点矩阵,并且
w1
w2
在向量
wk
中定义,并且
w0
单独定义,则类似的方法可能会起作用:

x = linspace(min(X(:,1)), max(X(:,1)));
y = -(wk(1)/wk(2))*x - (w0/wk(2));
plot(X(:,1), X(:,2), 'b.', x, y);

确定从起点到终点的线性间隔点阵列,默认情况下生成100个点。然后,我们创建给定这些点的线的输出值,并用蓝色绘制各个点以及这些点顶部的线本身。

谢谢,这非常简单!我是新来的,我该怎么做?开玩笑的,我知道了