reduce samples on a 3d array

9 visualizaciones (últimos 30 días)
Emmanouil Karamousadakis
Emmanouil Karamousadakis el 26 de Ag. de 2021
Comentada: Wan Ji el 29 de Ag. de 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!!

Respuesta aceptada

Wan Ji
Wan Ji el 26 de Ag. de 2021
Editada: Wan Ji el 26 de Ag. de 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 comentarios
Emmanouil Karamousadakis
Emmanouil Karamousadakis el 29 de Ag. de 2021
Thank you!!! It works perfect!!!
Your code is very very easy to understand!!
I appreciate it!
Wan Ji
Wan Ji el 29 de Ag. de 2021
Hi friend, my pleasure the code helped solve your problem! :)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by