Average of a structure

28 visualizaciones (últimos 30 días)
Sreejoe Kaniyamparambil
Sreejoe Kaniyamparambil el 10 de Feb. de 2017
Editada: Stephen23 el 10 de Feb. de 2017
Hey everyonone. I'd like to get the average of the same entry of each field inside a struct field (here: 'thickness') . This is what my data looks like :
To make it more exact I'd like to have a code to give me the following output:
avg(1)=mean(files.meas_data(1-9).thickness(1)
avg(2)=mean(files.meas_data(1-9).thickness(2)
and so on. I tried it using nested loops:
[
for k=1:length(files.meas_data.thickness)
for l=1:length(files.files_during)
avg(k)=mean(files.meas_data(l).thickness(k))
end
end
]
However I always get the following error message:
files =
all: {18x1 cell}
files_during: {9x1 cell}
meas_data: [1x9 struct]
Error using length Too many input arguments.
Error in RunCode (line 11) for k=1:length(files.meas_data.thickness)
Appreciate your help very much. Please bear with me I just started matlab today.

Respuesta aceptada

Stephen23
Stephen23 el 10 de Feb. de 2017
Editada: Stephen23 el 10 de Feb. de 2017
Perhaps using arrayfun::
arrayfun(@(s)mean(s.thickness),files.meas_data)
S = files.meas_data;
cellfun(@mean,{S.thickness})
  2 comentarios
Sreejoe Kaniyamparambil
Sreejoe Kaniyamparambil el 10 de Feb. de 2017
Hey Stephen, Thank you. Unfortunatley this command gives me the average of each all the values inside a thickness field. I need the mean of the same entry in 'thickness' for all the thicknesses(9)
Stephen23
Stephen23 el 10 de Feb. de 2017
Editada: Stephen23 el 10 de Feb. de 2017
The thickness arrays have different sizes. How will you take the 107th value from meas_data(2).thickness, which only has 95 elements ?
You might be able to use Jos's excellent FEX submission padcat, something like this (untested):
S = files.meas_data;
M = padcat(S.thickness);
nanmean(M,1)
Or perhaps, one at a time:
N = 6;
mean(cellfun(@(v)v(N),{S.thickness}))

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Structures 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