MATLAB Answers

Remove overlapping intervals from two array intervals without using a loop

2 views (last 30 days)
Alba Solb
Alba Solb on 7 Feb 2018
Commented: Bruno Luong on 24 Jan 2021
Having the start and end of each interval of the noise array, how could I do it to exclude those times that overlap with another interval array of detections?
I know how to do it in a loop, but then it has to go interval by interval to check if they overlap to excluded it and this takes to much time. Is there a better approach that I could use without using a loop?
I know I can check for the overlapping intervals like this:
ovlp = @(x, y)bsxfun(@ge, x(:, 1), y(:, 1)') & bsxfun(@le, x(:, 1), y(:, 2)');
idx = ovlp(noise,det) | ovlp(det, noise)';
[row, col] = ind2sub(size(idx), find(idx));
output = [row, col];
However, then this does not tell me what start or end of the noise interval will become the end of the detection interval.
Thank you so much for your help.
Alba

  0 Comments

Sign in to comment.

Answers (2)


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!