Как сделать набор на сюжете в Matlab как на фото - Perceptron - PullRequest
0 голосов
/ 23 мая 2018

У меня есть проблема, чтобы сделать набор и показать, как на этой фотографии во вложении.

photo

Где:

enter image description here

Точки должны быть случайными в диапазоне:

photo3

Принцип установки:

photo2

Это первая часть упражнения о персептроне.Без этого я не могу делать другие части.

Вот мой код:

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');

1 Ответ

0 голосов
/ 24 мая 2018

Итак, вы уже выяснили, как генерировать случайные координаты в области графика:

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

Далее вы хотите найти подмножество точек, которые удовлетворяют уравнению (это набор дляwhich 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');

В результате вы получите график, точно такой же, как в вопросе, за исключением x иo маркеры вместо . маркеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...