How do we plot a graph with non available values for y without breaking the continuity?
Mostrar comentarios más antiguos
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
Respuesta aceptada
Más respuestas (1)
Azzi Abdelmalek
el 25 de Oct. de 2012
Editada: Azzi Abdelmalek
el 25 de Oct. de 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 comentarios
Matt Tearle
el 25 de Oct. de 2012
idx = ~isnan(y);
No need for the find. (Sorry, I love logical indexing!)
Azzi Abdelmalek
el 25 de Oct. de 2012
I agree
Categorías
Más información sobre MATLAB en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!