-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathcompute_peaks_latencies.m
75 lines (26 loc) · 1.19 KB
/
compute_peaks_latencies.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
function [AvgPeakScores, PeakLatencies] = compute_peaks_latencies(EEG, PeakRange, roi_ind)
%% Find peak, avg around it
EEG_ui_roi = squeeze(mean(EEG.data(roi_ind, :,:),1)); %select and average across channels of interest
EEG_roi_tw = EEG_ui_roi(PeakRange, :);
EEG_peak_values = squeeze(max(EEG_roi_tw));
EEG_avg_peak_values = zeros((length(EEG_peak_values)),1);
EEG_peak_latencies = zeros((length(EEG_peak_values)),1);
for i=1:length(EEG_peak_values)
peak_index = find(EEG_ui_roi(:,i)== EEG_peak_values(i),1);
peak_latency = EEG.times(peak_index);
sd = fix(std(EEG.times));
peakav_start = find(EEG.times == peak_latency-sd);
peakav_end = find(EEG.times == peak_latency+sd);
if isempty(peakav_start)
peakav_start = 1;
elseif isempty(peakav_end)
peakav_end = length(EEG.times);
end
AvgPeakRange = peakav_start:peakav_end;
avg_peak_value = squeeze(mean(EEG_ui_roi(AvgPeakRange, i),1)); %select and average across timerange of interest
EEG_avg_peak_values(i) = avg_peak_value;
EEG_peak_latencies(i) = peak_latency;
end
AvgPeakScores = EEG_avg_peak_values;
PeakLatencies = EEG_peak_latencies;
end