pos = find(y==1);
neg = find(y==0);
plot(X(pos, 1), X(pos, 2), "k+", "LineWidth", 2, 'MarkerSize', 7);
plot(X(neg, 1), X(neg, 2), "ko", "MarkerFaceColor", 'y', 'MarkerSize', 7);
据我所知,find函数为我们提供了y == 1和y == 0的数据索引。但我不确定X(pos,1)和X(pos,2)在下面的函数中做了什么。有人可以解释这个情节函数是如何工作的吗?
答案 0 :(得分:3)
pos
和neg
是具有索引的向量,其中满足条件y==1
(分别为y == 0)。 y
似乎是一个长度为n的向量,X
似乎是一个nx2矩阵。 X(pos,1)
是满足条件X
的行中y==1
第一列的所有元素。
y = [ 2 3 1 4 0 1 2 6 0 4]
X = [55 19;54 96;19 85;74 81;94 34;82 80;79 92;57 36;70 81;69 4]
X(find(y==1), 1)
给出了
ans =
19
82
请注意,此处不需要查找
X(y==1, 1)
就足够了
答案 1 :(得分:0)
这里X是nx2 matix,而pos是m个向量,在矩阵X中索引为y == 1。 由于X(pos,1)是m x 1矩阵,矩阵X的第一行的值x == 1,所以X(pos,2)也是这种情况。
用
plot(X(pos, 1), X(pos, 2), "k+", "LineWidth", 2, 'MarkerSize', 7);
将为您提供一个带有'+'点的图形,这些点具有x坐标X(pos,1)[矩阵X第一行的值,其中x == 1]和y坐标X(pos,2)[第二行的值X的矩阵,其中x == 1]。
与plot(X(neg, 1), X(neg, 2), "ko", "MarkerFaceColor", 'y', 'MarkerSize', 7);
类似
将为您提供一个带有黄色圆点的图形,该黄色圆点具有x坐标X(neg,1)[矩阵X第一行的值,其中x == 0]和y坐标X(neg,2)[矩阵X第二行的值,其中x == 0]。
您也可以直接使用y==1
代替pos
。
答案 2 :(得分:0)
代码:
pos = find(y == 1); neg = find(y == 0);
% Plot Examples
plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2,'MarkerSize', 7);
plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'y', 'MarkerSize', 7);
答案:简单来说,X(pos,1)存储X的第一列的所有值,其中y == 1 X(pos,2)存储X的第二列的所有值,其中y == 1。 类似地,它会发生在X(neg,1),X(neg,2)上,其中X分别存储X的第一列和第二列的值,其中y == 0。 现在,我在此处包括一些输出以更好地理解。 这是我的数据集。
34.62365962451697,78.0246928153624,0
61.10666453684766,96.51142588489624,1
30.28671076822607,43.89499752400101,0
35.84740876993872,72.90219802708364,0
60.18259938620976,86.30855209546826,1
79.0327360507101,75.3443764369103,1
您可以在X(pos,1)上绘制X(pos,2),同样在X(neg,1)上绘制X(neg,2)