## Copyright (C) 2018 Jens Ahrensfeld ## ## This program is free software; you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 3 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program. If not, see . ## -*- texinfo -*- ## @deftypefn {Function File} {@var{retval} =} stdp_eval (@var{input1}, @var{input2}) ## ## @seealso{} ## @end deftypefn ## Author: Jens Ahrensfeld ## Created: 2018-01-17 function stdp_eval () N = 8; Vp = zeros(N,1); W = rand(N, 1) K = 100; alpha = 0.5; beta = 0.5; thresh = 2.0; kn = 0.01; mu = 0.01; Vf = 0; for k=1:K, Vin = rand(N,1) > 0.8; Vp = max(alpha*Vp, Vin); V = sum(W.*Vp); n = kn*(2.0 * (0.5 - rand())); fire = ((V+n) >= thresh); Vf = max(beta*Vf, fire); W = W + mu*Vp*Vf; _V(k) = V; _Vin(:, k) = Vin; _fire(k) = fire; end plot(1:K, _V, 1:K, _fire); grid; endfunction