Hello,
The attached file has two columns, time and levels. It has 6 missing data gaps. I want to find the index of each gap like this;
gap1 index 7-13
gap2 index 38-42
gap3 index 67-81
gap4 index 108-111
gap5 index 141-151
gap6 index 182-184
Your help is highly appreciated.
Thank you
Dash

 채택된 답변

Adam Danz
Adam Danz 2020년 4월 20일

0 개 추천

Compute start and stop indices for NaN segments in height variable (column vector).
nanStartIdx = find(diff(isnan([0;height;0]))==1);
nanStopIdx = find(diff(isnan([0;height;0]))==-1);
Show the results.
% Show index of NaN values
ax = cla();
plot(isnan(height), '-k', 'LineWidth', 2)
ylim([-.2, 1.5])
xlabel('index')
ylabel('is NaN')
set(ax, 'YTick', [0,1], 'YTickLabel', {'False', 'True'})
hold on
arrayfun(@(start)xline(start, 'b-','Start'), nanStartIdx)
arrayfun(@(stop)xline(stop, 'c-','Stop'), nanStopIdx)

댓글 수: 2

Binu
Binu 2020년 4월 21일
Thanks Adam. Much appreciated
Maria Battle
Maria Battle 2024년 2월 23일
편집: Maria Battle 2024년 2월 23일
Good solution! If you wanted Stop to be aligned with the last NaN value of each gap, try
nanStopIdx = find(diff(isnan([0;height;0]))==-1)-1;

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

질문:

2020년 4월 20일

편집:

2024년 2월 23일

Community Treasure Hunt

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

Start Hunting!

Translated by