from
NESim
by Chris Eliasmith General package for large-scale biologically plausible simulations (with GUI).
getDecVec(EncVec,Cmatrix,Moments,noise)
function DecVec = getDecVec(EncVec,Cmatrix,Moments,noise)
%% Compute the linear decoding vectors using the results of genDecVecParms.m
%%
%% Jan. 10, 2001
%% Modified Jan. 17, 2001 General clean up of neural subroutines
%% Oct. 2, 2001, removed reference to Nsvd.
%% Copyright (C) by Charles. H. Anderson (All Rights Reserved)
%% Dept. Anatomy and Neurobiology
%% Washington Univ. School of Medicine
%% St. Louis, MO
%% cha@shifter.wustl.edu
[N, D] = size(EncVec);
[U,S,UT] = svd(Cmatrix);
S = diag(S);
Sinv = 1./(S+noise^2*ones(N,1));
Sinv = diag(Sinv);
if(D>1)
V = Moments(:,2)*ones(1,D).*EncVec;
else
V = Moments(:,2);
end
DecVec = U*Sinv*(U'*V);