function a = RBF1learn( x, y, mu, sigma ) %function a = RBF1learn( x, y, mu ) % learn RBF parameter 'a_j' by LMS % with fixed mu, sigma [d,T] = size( y ); % d; target vector dimension, T; number of data [q,T] = size( x ); % q; data vector dimension [q,M] = size( mu ); % M; number of base centers a = zeros( d, M ); % デフォルトでは y(t) の次元 d = 1 であるから、 % 以下で':'とあるところは、省略しても可。 K = zeros( M, M ); z = zeros( d, M ); for t = 1:T for j = 1:M x_mu = x(:,t) - mu(:,j); k(j) = exp( -x_mu'*x_mu/(2*sigma^2) ); z(:,j) = z(:,j) + k(j)*y(:,t); end K = K + k'*k; end z = z/T; K = K/T; for n = 1:d a(n,:) = z(n,:)*inv(K); end