function count = getNumberOfIntersections(signal, timestamps, value) is_smaller_value = false; is_bigger_value = false; window_poi = []; window_ts = []; p_idx = 1; for j = 1:length(signal) %is measurement smaller? if(signal(j) < value) %was the last measurement bigger and the current smaller? if(is_bigger_value == true) window_poi(p_idx) = signal(j); window_ts(p_idx) = interp1(signal(j-1 : j),timestamps(j-1 : j),value); p_idx = p_idx + 1; end is_smaller_value = true; is_bigger_value = false; else %was the last measurement smaller and the current bigger? if(is_smaller_value == true) window_poi(p_idx) = signal(j); window_ts(p_idx) = interp1(signal(j-1 : j),timestamps(j-1 : j),value); p_idx = p_idx + 1; end is_smaller_value = false; is_bigger_value = true; end end count = length(window_poi); end