How to remove NaN's from an array AND the corresponding value/element in another array of the same size?
조회 수: 5 (최근 30일)
이전 댓글 표시
I have 2 arrays: A = [2 3 5 7 9] and B = [1 3 nan 1 nan]
I want to plot(A,B) but when i do that, i will just get data points and no line connecting each point bc there's NaN's between points
(i want lines between points bc i intend to show multiple data sets in this plot eventually)
so i want to remove the nan's in B and the corresponding elements in A (5 and 9)
to remove the nan's in B, i do:
y1 = B(~isnan(B));
so now, y1 = [1 3 1]
how do I make an x1 = [2 3 7]? so i can just plot (x1,y1)
I'm doing this many many times with a large set of data.
댓글 수: 0
채택된 답변
Alex Mcaulley
2020년 3월 12일
x1 = A(~isnan(B));
y1 = B(~isnan(B));
댓글 수: 2
dpb
2020년 3월 12일
Perhaps easier to visualize (and might be a little faster at expense of a temporary variable) ...
isOK=isfinite(B);
plot(A(isOK),B(isOK))
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Scatter Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!