Fill blank spaces from lagged data with NaN
    4 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
I have a code which lags one data set in relation to another. The lag is determined based on r^2 values previously figured out.
The problem I have is that when the data is lagged, some data is removed. For example where there is a lag of +1 a vector of 96 rows becomes a vector of 95 rows. I want to fill that missing row is NaN so that it remains at 96. See code below. Thank you in advance for any help.
clear all;
clc
lag = load ('lagtime.txt'); %File contains the time by which each column will be lagged
      A1 = load ('data\Anomalies\TWSA1anomalies.mat');
      Approx1x = A1.TWSA1anomalies;
      Approx1y = reshape(Approx1x,[1505,96]);
      Approx1z = Approx1y';
      NDVIdata = load ('data\Anomalies\NDVIanomalies.mat');
      NDVIx = NDVIdata.NDVIanomalies;
      NDVIy = reshape(NDVIx,[1505,96]);
      NDVIz = NDVIy';
      for j = 1:1505
         m = lag(1,j)
         GRACEcrop = Approx1z(1:(96-m),j); 
         NDVIcrop = NDVIz((1+m):96,j);
            dlmwrite ('GRACECROPVEC.txt',GRACEcrop,'-append');
            dlmwrite ('NDVICROPVEC.txt',NDVIcrop,'-append');
      end
GRACEVEC = load ('GRACECROPVEC.txt');
NDVIVEC = load ('NDVICROPVEC.txt');
NEWGRACELAG = reshape(GRACEVEC,[96,1505]);
0 comentarios
Respuesta aceptada
  dpb
      
      
 el 15 de Dic. de 2015
        
      Editada: dpb
      
      
 el 16 de Dic. de 2015
  
      Instead of selecting the first N points,
GRACEcrop = Approx1z(1:(96-m),j);
just set the last m to NaN...
Approx1z(end-m+1:end,j)=nan;
and then write the modified array. No need for a new array at all (unless you have reason to also keep the unmodified in memory as well, of course).
2 comentarios
Más respuestas (0)
Ver también
Categorías
				Más información sobre Annotations en Help Center y File Exchange.
			
	Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

