Встроенная функция rand()
уже делает то, что вы пытаетесь сделать с randomFloat()
.
Для calculateOutput
вы можете использовать что-то довольно похожее на то, что выполучил, но, как вы говорите, вам не нужно объявлять типы:
function result = calculateOutput (weights, x, y)
s = x * weights(1) + y * weights(2) + weights(3);
if s >= 0
result = 1;
else
result = -1;
end
end
Обратите внимание, что векторы matlab основаны на одном, поэтому вам нужно настроить индексирование.
ЕслиВы хотите обобщить это на произвольные векторы, имеет смысл «векторизовать» это, но для этого простого случая такой прямой перевод должен подойти.