Find overlapped range between vectors
조회 수: 5 (최근 30일)
이전 댓글 표시
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
Image Analyst
2014년 5월 9일
편집: Image Analyst
2014년 5월 9일
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.
답변 (1개)
Image Analyst
2014년 5월 9일
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.
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!