function Sal=adaline(In,Pesos,a)
% Red ADALINE	
% 
%  Sal=adaline((In,Pesos)
%
%	In:      (NxM) Entrada para aprendizaje 
%              N: Número de patrones (entradas)
%              M: Número de neuronas de entrada
%	Pesos:	((M+Umbral)xK) Pesos iniciales
%            [PesoUmbral, Pesos]
%
%   a:       Valor de la sigmoide (18 por defecto).
%
%
%	Sal:	   (NxK) Salida de la red para cada entrada
%              N: Número de entradas (una salida por patrón)
%              K: Número de neuronas de salida
%

% APRENDIZAJE AUTOMÁTICO (Gonzalo Pajares y Jesús M. de la Cruz, Eds.)
% Editorial: RA-MA
% Capítulo 4: Redes Neuronales Artificiales
% Autores: José Antonio López Orozco


if (nargin<3), a=18; end;

[filas,N_In]=size(In);
[filas_Pesos,N_sal]=size(Pesos);

if (N_In<filas_Pesos), %Hay umbral
   In=[ones(filas,1),In];
end;   

for i=1:filas,
   Net=In(i,:)*Pesos;
   
   % Función de activación
   Sal(i,:)=sigmoide(Net,a);
   
end;
