Say that I have the following:
y[t_] := 2 + (2/10)*(1 - Exp[-t/11])
timedat = N[Table[{t, y[t]}, {t, 0, 10, 1/1000}]];
How is it possible to construct an algorithm that it will pick data uniformly spaced in log time from a set of data uniformly spaced in time, as the above timedat?
Basically, what I want is the Mathematica counterpart of the following Matlab algorithm
% log sampling, user picks the initial time and increment time
% xi(:,1) time (equally spaced in time)
% xi(:,2) compliance
ndp = length(xi(:,1)); %# data points read
tf = xi(ndp,1); %final time
logti = -1; %log of initial time to sample, user choice
del_logti = 0.1; %log time interval to sample, user choice
logt = [logti:del_logti:log10(tf)]; %equally spaced in log scale
tr = 10.^logt; %back to time scale
nr = length(tr); %number of newly sampled data
if tr(nr)~=tf;
tr = [tr,tf]; %add the final time
nr = length(tr); %number of newly sampled data
end
rcount = 1;
for i=1:ndp
if xi(i,1) >= tr(rcount) %say 10^-0.1
xo(rcount,:) = xi(i,:); %copy data equally spaced in log(time)
rcount = rcount+1;
end
if rcount > nr, break, end;
end
which I found here ; page 4.
Thanks.

