reduce samples on a 3d array
    8 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Emmanouil Karamousadakis
 am 26 Aug. 2021
  
    
    
    
    
    Kommentiert: Wan Ji
      
 am 29 Aug. 2021
            I have a  3d matrix containing temperature data. The first 2 dimensions are the the x,y, of my thermal camera, the 3rd dimention represents time. 
It is a 160x120x30000. size
I cannot find a way to reduce its 3rd dimension size with some kind of interpolation, loosing data in between not at the ends. I would like to make it 160x120x28000 for example. Any ideas plz? I played aroud with griddedInterpolant and interp1 but I cannot figure it out.  
Thank you!!
0 Kommentare
Akzeptierte Antwort
  Wan Ji
      
 am 26 Aug. 2021
        
      Bearbeitet: Wan Ji
      
 am 26 Aug. 2021
  
      Use interp1 my friend, if a is the 160x120x30000 data that you said. 
[m,n,p] = size(a);
a = reshape(a,m*n,p);
nSeries = p;
totalTime = nSeries - 1;
nSampled = 28000; % loosing data in between with 28000 samples
tSeries = linspace(0,totalTime,nSeries);
tSampled = linspace(0,totalTime,nSampled);
a = interp1(tSeries,a',tSampled);
a = reshape(a',m,n,nSampled); % this is the data resampled 160x120x28000
2 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

