用八度语法绘制

时间:2017-06-28 07:33:52

标签: machine-learning octave

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)在下面的函数中做了什么。有人可以解释这个情节函数是如何工作的吗?

3 个答案:

答案 0 :(得分:3)

posneg是具有索引的向量,其中满足条件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

Changing in code can see with yellow colored lines.

output

See the values of X(pos, 1) "first column of X where y == 1 ", X(pos, 2) Second column of X where y == 1 " , X(neg, 1) first column of X where y == 0 " and X(neg, 2) Second column of X where y == 0 "

您可以在X(pos,1)上绘制X(pos,2),同样在X(neg,1)上绘制X(neg,2)