How do we plot a graph with non available values for y without breaking the continuity?
Show older comments
INTRO: I have an array M as below:
M=
1 4
2 NaN
3 10
4 NaN
5 NaN
6 15
7 NaN
8 17
9 59
10 NaN
GOAL: I want to plot the second versus the first column as follow:
M=load('M.txt');
h=plot(M(:,1),M(:,2));
PROBLEM: Due to the NaN, it does not plot the gaps correctly and breaks the continuity of the graph.
I wonder if someone could suggest me to some command lines that could fix this issue.
I thank you in advance for your help
Emerson
Accepted Answer
More Answers (1)
Azzi Abdelmalek
on 25 Oct 2012
Edited: Azzi Abdelmalek
on 25 Oct 2012
Use interpolation
x=M(:,1);
y=M(:,2);
idx=find(~isnan(y))
y=interp1(x(idx),y(idx),x,'linear')
or remove rows containing nan
x=M(:,1);
y=M(:,2);
x(find(isnan(y)))=[]
y(find(isnan(y)))=[]
2 Comments
Matt Tearle
on 25 Oct 2012
idx = ~isnan(y);
No need for the find. (Sorry, I love logical indexing!)
Azzi Abdelmalek
on 25 Oct 2012
I agree
Categories
Find more on MATLAB in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!