ignore nan values in plotting

24 visualizaciones (últimos 30 días)
Fani
Fani el 8 de Oct. de 2014
Comentada: dpb el 8 de Oct. de 2014
Hi!
I need your help please!
I have to plot columns with nan values. I want to ignore the nan. I have the table LOGIR who contains 2048 columns and the table XMEAN with one column. The XMEAN has no nan values. The LOGIR has nan. I want to plot XMEAN with each column of the LOGIR and then i do fitting linear. The problem is that the equation of line is y=nanx+nan, because include the nan values. How can i ignore the nan values??
My script is:
for k=159:100:2048
p=polyfit(XMEAN,LOGIR(:,k),1);
yfit=polyval(p,XMEAN);
figure(k);
plot(XMEAN,LOGIR(:,k),'.',XMEAN,yfit,'r');
gtext(['y=',num2str(p(1)),'x+',num2str(p(2))])
xlabel('airmass')
ylabel('logirradiance')
print(sprintf('Figure(%d).bmp',k), '-dbmp')
end
Thank you

Respuesta aceptada

Fani
Fani el 8 de Oct. de 2014
It works!! Thank you very much!
  1 comentario
dpb
dpb el 8 de Oct. de 2014
Of course it works... :)
If it solved the problem, please Accept the answer so other folks know the subject is resolved...

Iniciar sesión para comentar.

Más respuestas (1)

dpb
dpb el 8 de Oct. de 2014
In your loop over the columns
for k=159:100:2048
p=polyfit(XMEAN,LOGIR(:,k),1);
yfit=polyval(p,XMEAN);
handle the NaNs before trying to fit...
for k=159:100:2048
ix=isfinite(LOGIR(:,k)); % indices of the non-NaN (finite) values
x=XMEAN(ix); y=LOGIR(ix,k); % save in a temporary array
p=polyfit(x,y,1);
yfit=polyval(p,x);
...

Categorías

Más información sobre Line Plots en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by