Я должен реализовать однопроцессорный персептрон с использованием Matlab.как вернуться к первому индексу матриц
Проблема, с которой я столкнулась, заключается в том, что когда я запускал свою программу, она давала мне вывод для каждого входа (он показывает результаты 4 раза), но я хочу вернуться к первому индексу матрицы, после того, как он достигнут четвертый, и я не могу узнать, как я вернусь к первому индексу матрицы.
Я хочу подготовить свою программу так, чтобы она давала тот же результат, что и в b
, итерируя матрицу в каждом цикле.
Это мой текущий код:
a = [ 1 1
1 -1
-1 1
-1 -1 ];
b = [1
-1
-1
-1];
disp(a);
disp(b);
x = a(:,1);
disp(x);
y = a(:,2);
disp(y)
learningrate = 0.1;
maxiteration = 10;
weight(1)=0.1;
weight(2)=0.1;
weight(3)=0.1;
count = length(x);
for p = 1:count
s = (x(p) * weight(1))+ (y(p) * weight(2))+ weight(3);
if s >= 0
result = 1;
if result ~= b(p)
weight(1) = weight(1)+learningrate*(b(p)-result)*x(p);
weight(2) = weight(2)+learningrate*(b(p)-result)*y(p);
weight(3) = weight(3)+learningrate*(b(p)-result);
disp(result);
disp(x(p));
disp(y(p));
disp(weight(1));
disp(weight(2));
disp(weight(3));
end
else
if s <= 0
result = -1;
disp(result);
if result ~= b(p)
weight(1)=weight(1)+learningrate*(b(p)-result)*x(p);
weight(2)=weight(2)+learningrate*(b(p)-result)*y(p);
weight(3)=weight(3)+learningrate*(b(p)-result);
disp(x(p));
disp(y(p));
disp(weight(1));
disp(weight(2));
disp(weight(3));
end
end
end
end
Взгляните на http://stackoverflow.com/questions/3455660/matlab-single-layer-neural-network – zellus