Find overlapped range between vectors

6 vues (au cours des 30 derniers jours)
SSOI SS
SSOI SS le 9 Mai 2014
Commenté : SSOI SS le 9 Mai 2014
I have a simple perhaps math question:
There are 5 vectors despiting their ranges, e.g.
[ 5 10]
[ 7 20]
[12 26]
[ 6 9]
[ 0 3]
How can I find their overlapped range? (Desired result is [7 9])
I came to a solution with two for loops, but it will be very time-consuming if the number of vectors is vast.
Does anyone have a simple and fast way to do this?
  2 commentaires
Image Analyst
Image Analyst le 9 Mai 2014
Modifié(e) : Image Analyst le 9 Mai 2014
What is the number of vectors? You can do tens of millions of for loop iterations in about a second so I doubt it's the for loop itself that is causing the delay. Maybe it's min() or max() being called so many times but I doubt it the iterating. Look, I did a billion iterations in just over 2 seconds :
tic
for k = 1 : 1e9
;
end
toc
Elapsed time is 2.269138 seconds.
SSOI SS
SSOI SS le 9 Mai 2014
ok, I have to admit that the cases my algorithm have to deal with are more complicated, since the vectors can satuate and have overturns. So I have to keep correcting the elements. In total I get a result of 4.37 sec with 227230 loops. That's the moment I started to think alternatives for the for loops.
Maybe there is a better way ...

Connectez-vous pour commenter.

Réponses (1)

Image Analyst
Image Analyst le 9 Mai 2014
I think you need a for loop. Even if you were to somehow get all of your 227230 vectors into a 2D array that you then did some non-loop/vectorized method, you'd still have to use a loop to stuff the vectors into the 2D array in the first place , like say, you were reading the individual vectors from a text file, or Excel workbook, or retrieving them from a function or something.
  1 commentaire
SSOI SS
SSOI SS le 9 Mai 2014
I don't have create/stuff an extra 2D since the vectors are already in array format ...

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by