Average of a structure
23 ビュー (過去 30 日間)
古いコメントを表示
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.
0 件のコメント
採用された回答
Stephen23
2017 年 2 月 10 日
編集済み: Stephen23
2017 年 2 月 10 日
arrayfun(@(s)mean(s.thickness),files.meas_data)
S = files.meas_data;
cellfun(@mean,{S.thickness})
2 件のコメント
Stephen23
2017 年 2 月 10 日
編集済み: Stephen23
2017 年 2 月 10 日
The thickness arrays have different sizes. How will you take the 107th value from meas_data(2).thickness, which only has 95 elements ?
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}))
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Structures についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!