samer@4: function M=intmap(min,max) samer@4: % intmap - Discretisation map for integers (ie alread discrete) samer@4: % samer@4: % intmap :: integer~'min value', integer~'max value' -> dmap(N). samer@4: % samer@4: % Maps integers to natural numbers, saves on multiplications and samer@4: % roundings as performed by the real->natural maps. samer@4: samer@4: N=max-min+1; samer@4: off=min-1; samer@4: M=dmap(N,@map,@revmap); samer@4: samer@4: function I=map(X) samer@4: I=X-off; samer@4: I(I<1)=-inf; samer@4: I(I>N)=inf; samer@4: end samer@4: samer@4: function X=revmap(I) samer@4: I=shiftdim(shiftdim(I),-1); samer@4: X1=off+I-0.5; samer@4: X2=off+I+0.5; samer@4: X=cat(1,X1,X2); samer@4: end samer@4: end samer@4: