【问题标题】:How to make a set on plot in Matlab like on the photo - Perceptron如何像在照片上一样在 Matlab 中制作一组情节 - Perceptron
【发布时间】:2018-11-02 21:51:47
【问题描述】:

我无法在附件中的这张照片上进行设​​置和显示。

地点:

点必须在以下范围内随机:

设置原则:

这是关于感知器的练习的第一部分。没有这个,我就无法制作其他零件。

这是我的代码:

clc;
close all;
clear all;

I=400;
x1=-1+rand(I/2,1)+1;
X = [0+rand(I,1)*(2*pi) [-1+rand(I/2,1)+1;
    (-1+rand(I/2,1)+1)] ]

Y = [ones((I/2),1)*sin(-1); ones(I/2,1)];


a = X(1:I/2,1);

b = X(1:I/2,2);

c = X(I/2:I,1);

d = X(I/2:I,2);

plot( a, b, 'bx');

hold on;

plot( c, d, 'go');

【问题讨论】:

  • 这看起来像是绘制两组的正确方法。怎么了?
  • 你好 azor!问题是你想得到与图片中相似的分布吗?
  • @HermanWilén 没错。
  • @CrisLuengo 我刚刚修改了问题

标签: matlab plot perceptron


【解决方案1】:

所以你已经弄清楚了如何在绘图区域内生成随机坐标:

N = 400;
x1 = rand(N,1)*(2*pi);
x2 = rand(N,1)*2-1;

接下来,您要找到满足方程的点的子集(这是 y==-1 的集合):

I = abs(sin(x1)) > abs(x2);

I 是一个逻辑数组,具有满足条件的true 值。您可以使用I 来索引另一个数组。例如,您可以像这样创建向量y

y = ones(N,1);
y(I) = -1;

但你并不真的需要y 来创建情节。您已经绘制了两个子集,只需使用 I 作为索引而不是 1:N/2 来制作子集:

plot(x1(I),x2(I),'bx');
hold on
plot(x1(~I),x2(~I),'go');

结果是一个与问题中完全相同的图,除了 xo 标记而不是 . 标记。

【讨论】:

    猜你喜欢
    • 2019-11-08
    • 2017-05-27
    • 2020-07-19
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多