How do I Average across structure

I have a 14 subject structure (ERP_data.ERP_data); for each subject there is 3D matrix: 32(electrode) x 381(data) x 32(condition); I would like to average the data across subjects with nanmean, so the final matrix will be 32x381x32; thank you for you help!
R

3 个评论

Would you upload the data file/files and the code you tried?
Where’s the data file?
Sorry, but datafile is too big to upload...you can see the structure of that file on the picture.

请先登录,再进行评论。

 采纳的回答

Here's a possible solution I used to solve your problem:
clear; close all;
% This part just creates dummy data similar to yours with the same structure
ERP_data(14) = struct('ERP_data',0);
for n = 1:14
ERP_data(n) = struct('ERP_data',rand(32,381,32));
end
averagedData = zeros(32,381,32); % Initializes final matrix
for n = 1:32
for m = 1:381
for o = 1:32
dataToAverage = zeros(14,1); % Initializes vector to average
for p = 1:14
dataToAverage(p) = ERP_data(p).ERP_data(n,m,o); % Grabs the data point from each subject for the position given by m,n, and o
end
averagedData(n,m,o) = nanmean(dataToAverage); % Averages those points and then assigns that value to the position given by m,n, and o in the final matrix
end
end
end
Hope that helps!

1 个评论

Thanks a lot! This is what I did meanwhile, and it is also working:
GA_ERP_cue = []; for ch = 1:32 GA_ERP_cue_temp = nanmean([ERP_data(1).ERP_data(ch,:,:); ERP_data(2).ERP_data(ch,:,:); ERP_data(3).ERP_data(ch,:,:); ERP_data(4).ERP_data(ch,:,:); ERP_data(5).ERP_data(ch,:,:); ERP_data(6).ERP_data(ch,:,:); ERP_data(7).ERP_data(ch,:,:); ERP_data(8).ERP_data(ch,:,:); ERP_data(9).ERP_data(ch,:,:); ERP_data(10).ERP_data(ch,:,:); ERP_data(11).ERP_data(ch,:,:); ERP_data(12).ERP_data(ch,:,:); ERP_data(13).ERP_data(ch,:,:); ERP_data(14).ERP_data(ch,:,:)]); GA_ERP_cue(ch,:,:) = GA_ERP_cue_temp; end

请先登录,再进行评论。

更多回答(1 个)

Image Analyst
Image Analyst 2018-8-30
You can use mean() with the 'omitnan' option.

类别

帮助中心File Exchange 中查找有关 Structures 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by