- added
git-svn-id: http://moon:8086/svn/matlab/trunk@157 801c6759-fa7c-4059-a304-17956f83a07c
This commit is contained in:
Executable
+46
@@ -0,0 +1,46 @@
|
||||
function [xmax lsize] = maxlist(x, L, L_max, mode)
|
||||
|
||||
P = 1E24;
|
||||
u = zeros(L, 1);
|
||||
p = zeros(L, 1);
|
||||
u_last = zeros(L, 1);
|
||||
p_last = zeros(L, 1);
|
||||
|
||||
OFF = 1;
|
||||
|
||||
u_last(1 + OFF) = P;
|
||||
u_last(0 + OFF) = 0;
|
||||
p_last(0 + OFF) = 0 + OFF;
|
||||
N = 0 + OFF;
|
||||
|
||||
x = mode*x;
|
||||
|
||||
for k=1:lge(x),
|
||||
if (p_last(N) == (L + OFF))
|
||||
m = 0;
|
||||
u_last(N) = P;
|
||||
else
|
||||
m = 1;
|
||||
end
|
||||
N = min(L_max, N + m);
|
||||
|
||||
ii = 0;
|
||||
while x(k) >= u_last(ii+1+OFF)
|
||||
ii = ii + 1;
|
||||
end
|
||||
N = N - ii;
|
||||
|
||||
for jj=(1 + OFF):(N -1)
|
||||
u(jj+1) = u_last(jj+ii);
|
||||
p(jj+1) = p_last(jj+ii) + 1;
|
||||
end
|
||||
u(N+1) = P;
|
||||
p(N+1) = 0;
|
||||
u(1 + OFF) = x(k);
|
||||
p(1 + OFF) = 1 + OFF;
|
||||
xmax(k) = mode*u(N);
|
||||
pmax = p(N);
|
||||
lsize(k) = find(u == P, 1);
|
||||
u_last(1:lsize(k)) = u(1:lsize(k));
|
||||
p_last(1:lsize(k)) = p(1:lsize(k));
|
||||
end;
|
||||
Reference in New Issue
Block a user