How do we plot a graph with non available values for y without breaking the continuity?
Afficher commentaires plus anciens
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
Réponse acceptée
Plus de réponses (1)
Azzi Abdelmalek
le 25 Oct 2012
Modifié(e) : Azzi Abdelmalek
le 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 commentaires
Matt Tearle
le 25 Oct 2012
idx = ~isnan(y);
No need for the find. (Sorry, I love logical indexing!)
Azzi Abdelmalek
le 25 Oct 2012
I agree
Catégories
En savoir plus sur MATLAB dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!