How do I Average across structure
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Jacob Ward
2018-8-29
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 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Structures 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!