Borrar filtros
Borrar filtros

Mean value of data with irregular intervals

3 visualizaciones (últimos 30 días)
bobo
bobo el 29 de Jul. de 2013
Comentada: Andrew Sandeman el 15 de Jun. de 2023
Hello,
I am trying to obtain average y value for a data set (x,y). However, interval between data points is not regular and mean(y) is off from the expected value. For example,
x = [1 1.1 1.2 1.3 2 3 4 5.1 5.2 5.3 5.4]; y = [0 0.1 0.2 0.3 1 2 1 0.3 0.2 0.1 0];
Because x,y are more densely lying in x = [0 1] and [5 6] intervals, y values in those intervals are weighted more if I take mean(y). Do you know how to avoid this and obtain y value in uniform intervals?
Thanks, Bobo

Respuesta aceptada

Iain
Iain el 29 de Jul. de 2013
Why not just take a weighted mean?
This method ignores y(1) - you could change it to ignore y(end), or add info and inclue it.
totalweight = 0;
weightedsum = 0;
for i = 2:numel(x)
weight = x(i)-x(i-1);
weightedsum = weightedsum + weight*y(i);
totalweight = totalweight + weight;
end
meanvalue = weightedsum / totalweight;
  1 comentario
dpb
dpb el 29 de Jul. de 2013
Editada: dpb el 30 de Jul. de 2013
d=diff(xx);
m=sum(d.*yy(2:end))/sum(d);
which can also be written as
m=dot(diff(xx),yy(2:end))/sum(d);

Iniciar sesión para comentar.

Más respuestas (1)

dpb
dpb el 29 de Jul. de 2013
Editada: dpb el 29 de Jul. de 2013
One way to weight uniformly...
dx=min(diff(x)); % shortest difference in vector
xi=x(1):dx:x(end); % fill in all values equally
yhat=interp1(x',y',x1'); % and get corresponding y's...
mean(yhat); % obviously can combine steps ...
  2 comentarios
bobo
bobo el 30 de Jul. de 2013
Thanks!!
Andrew Sandeman
Andrew Sandeman el 15 de Jun. de 2023
In my opinion this is the correct answer, not the currently accepted answer.
  • This method does not neglect y(1)
  • Samples which are obtained more sparsely are weighted more accurately using this interpolation method

Iniciar sesión para comentar.

Categorías

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

Community Treasure Hunt

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

Start Hunting!

Translated by