get_intervals
%% get intervals in which the valus are above certain val
% 1/21/2018
% by yingcai zheng
%
close all;
clc;
clear;
nx = 51;
xi= linspace(0, 20, nx);
yi= sin(xi);
yi(1) = 4;
yi(end)=3;
figure; hold on;
plot(xi, yi);
vbar = 0.4;
interval = get_intervals (yi, vbar);
for j =1: numel(interval)
disp([interval(j).li interval(j).ri])
plot(xi([interval(j).li interval(j).ri]),[ vbar vbar],'r-o');
end
function interval = get_intervals (yi, vbar)
%% by yingcai zheng
% 1/21/2018
%
ind = find(yi >= vbar);
k= 0;
i1=ind(1);
for j =1: numel(ind)-1
if ind(j+1)-ind(j) > 1
k =k +1;
interval(k).i1=i1;
interval(k).i2=j;
interval(k).li = ind(i1);
interval(k).ri=ind(j);
i1 = j + 1;
end
end
if interval(end).i2 ~= numel(ind)
k = k + 1;
interval(k).i1=numel(ind);
interval(k).i2=numel(ind);
interval(k).li=ind(end);
interval(k).ri=ind(end);
end
return;