Average multiple vectors with different lengths

15 visualizaciones (últimos 30 días)
Harm Gilsing
Harm Gilsing el 25 de Mayo de 2020
Comentada: Rik el 25 de Mayo de 2020
I performed 3 measurements with different lengths of time. I would like to average those measurements without losing data. The measurements are stored in separate excel files which I can load each iteration of a for loop.

Respuesta aceptada

Rik
Rik el 25 de Mayo de 2020
Pad the shorter vectors with NaN and use the 'omitnan' flag in mean.
  2 comentarios
Harm Gilsing
Harm Gilsing el 25 de Mayo de 2020
Hi Rik, can you give a short example of this?
Rik
Rik el 25 de Mayo de 2020
Sure:
A=[1 2 5];
B=[4 3];
C=[4 3 2 1 5];
alldata={A,B,C};%put them all in a cell for convenience
maxlen=max(cellfun('prodofsize',alldata));
for n=1:numel(alldata)
current_elem=numel(alldata{n});
if current_elem<maxlen
alldata{n}((current_elem+1):maxlen)=NaN;
end
end
%show the result of this loop
clc
[A,B,C]=deal(alldata{:})
mean([A;B;C],'omitnan')
%or better:
extradim=1+ndims(alldata{1});
bigarray=cat(extradim,alldata{:});
mean(bigarray,extradim,'omitnan')

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Productos


Versión

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by