"Squeeze" array of indexes.

조회 수: 2 (최근 30일)
Adam
Adam 2011년 8월 4일
There must be an elegant way to do this in MATLAB.
Let's say I have an array of points and I want to find all areas where the points are over 0.90.
gap_indexes = find(output > 0.90)
Now you have indexes to all locations where output is greater than 0.90. But let's say you don't care about when there are two 0.90s right next to each other. What's the best way to squeeze them out into 1 index (let's say the later index)?
  댓글 수: 1
the cyclist
the cyclist 2011년 8월 4일
I think it would be a good idea for you to give a specific example of the variable "output" (which is your input!), and what you prefer to see for gap_indexes.

댓글을 달려면 로그인하십시오.

답변 (2개)

Oleg Komarov
Oleg Komarov 2011년 8월 4일
% Run length encoding:
A = rand(100,1)>.9;
find(diff([A; false]) == -1)
If you want the first change -1 to 1.

Adam
Adam 2011년 8월 9일
Thanks for help. Will respond with my solution when I have time in the future.

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by