function phi = greedymultispike(K,m,n) phi = zeros(1,m^n); iip = find(K>0); if isempty(iip) return end if all(K>=0) phi = phi + n; return end %[a,b] = sort(K(iip)); [a,b] = sort(abs(K)); %b = b(end:-1:1); for i=b(:)' phi0 = phi; %phi1 = optprop(phi,K,m,n,iip(i)); phi1 = optprop(phi,K,m,n,i); if phi1*K > phi0*K phi = phi1; else phi = phi0; end end return function phi = optprop(phi0,K,m,n,i) FV = []; for v=0:n phi = phi0; phi(i) = v; %phi = ceil(phi); if (K(i) >= 0) phi = lipropagated(phi,m,n); else phi = lipropagateu(phi,m,n); end %phi = lipropagate(phi,m,n); FV(end+1) = phi*K; end [a,b] = max(FV); v = b-1; phi = phi0; phi(i) = v; %phi = ceil(phi); phi = lipropagate(phi,m,n); return