-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbinavg0.m
More file actions
53 lines (53 loc) · 1.17 KB
/
binavg0.m
File metadata and controls
53 lines (53 loc) · 1.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
function [xa,ta]=binavg(x0,t0,ta0)
% function [xa,ta]=binavg(x0,t0,ta0)
% function to bin average data from original time series (x0,t0) into
% time series (xa,ta). ta0 must have new time base upon entry.
% x0 = original data
% t0 = original time base
% ta0= new time base, will get truncated by available data into ta
% ta0 MUST BE PASSED WITH VALUES
% xa = bin averaged data
% ta = time base at center of bins
% RKD 23/9/94
i0e=length(t0);
iae=length(ta0);
%
for i=1:1:iae-1
dt=ta0(i+1)-ta0(i);
if t0(1) < (ta0(i)-dt/2), break, end
end
% starting new bin at ta0(ia0)
ia0=i;
for i=iae:-1:2
dt=ta0(i)-ta0(i-1);
if t0(i0e) > (ta0(i)+dt/2), break, end
end
% new last bin at ta0(iae)
iae=i;
j0=1;
j=0;
dt2=(mean(diff(ta0)))/2;
for i=ia0:iae
j=j+1;
ta(j)=ta0(i);
avg=0;
navg=0;
for jj=j0:i0e
if (t0(jj) >= (ta(j)-dt2)) & (t0(jj) <= (ta(j)+dt2))
if isnan(x0(jj))==0
navg=navg+1;
avg=avg+x0(jj);
end
end
if t0(jj) > (ta(j)+dt2)
j0=jj-1;
break;
end
end
if navg > 0
xa(j)=avg/navg;
else
xa(j)=NaN;
end
end
%