EEGLAB ببساطة

دمج الداتاست وتقسيمها

المحطة 1 · الدرس 6 · EEGLAB 2026.1

من الواجهة

  1. EditSelect data eeglab_data.set
  2. Time range [min max] (s)on->remove these 0 120
  3. OKWhat do you want to do with the new dataset?Name it:OK D1 part 1
  4. Frames per epoch #2: D1 part 1
  5. Datasets Dataset 1:Continuous EEG Data
  6. EditSelect data
  7. Time range [min max] (s)on->remove these 0 120
  8. OK D1 part 2
  9. EditAppend datasets
  10. Dataset indices to merge 2 3
  11. Preserve ICA weights of the first dataset ?OK
  12. OK Merged datasetsD1 merged
  13. Events #4: D1 merged
  14. PlotChannel data (scroll) D1 merged
  15. Datasets Dataset 1:Continuous EEG Data
  16. EditSelect data using eventsRemove data portions around events - pop_rmdat()
  17. Event type(s) ([]=all) square
  18. Time limits [start, end] in sec. -0.5 1square
  19. Keep selectedOK D1 around square
  20. Events boundary

السكربت

[ALLEEG, EEG, CURRENTSET, ALLCOM] = eeglab;
sampleFolder = fullfile(fileparts(which('eeglab')), 'sample_data');
EEG = pop_loadset('filename', 'eeglab_data.set', 'filepath', sampleFolder);
[ALLEEG, EEG, CURRENTSET] = pop_newset(ALLEEG, EEG, 0, ...
    'setname', 'Continuous EEG Data', 'gui', 'off');
EEG = pop_select(ALLEEG(1), 'time', [0 120]);
[ALLEEG, EEG, CURRENTSET] = pop_newset(ALLEEG, EEG, CURRENTSET, ...
    'setname', 'D1 part 1', 'gui', 'off');
EEG = pop_select(ALLEEG(1), 'rmtime', [0 120]);
[ALLEEG, EEG, CURRENTSET] = pop_newset(ALLEEG, EEG, CURRENTSET, ...
    'setname', 'D1 part 2', 'gui', 'off');
EEG = pop_mergeset(ALLEEG, [2 3], 0);
[ALLEEG, EEG, CURRENTSET] = pop_newset(ALLEEG, EEG, CURRENTSET, ...
    'setname', 'D1 merged', 'gui', 'off');
[ALLEEG.pnts]                                  % 30504 15361 15143 30504
isequal(ALLEEG(4).data, ALLEEG(1).data)        % 1: same signal as the original
eeg_eventtypes(EEG)                            % square 80, rt 74, boundary 1
EEG.event(eeg_findboundaries(EEG)).latency     % 15361.5: between samples 15361 and 15362
EEG = pop_rmdat(ALLEEG(1), {'square'}, [-0.5 1], 0);
[ALLEEG, EEG, CURRENTSET] = pop_newset(ALLEEG, EEG, CURRENTSET, ...
    'setname', 'D1 around square', 'gui', 'off');
EEG.pnts                                       % 15336
numel(eeg_findboundaries(EEG))                 % 80
eeglab redraw;

أي قيمة أختار؟

ما تريدهالقائمةماذا تكتب
جزء واحد متصل من التسجيلEdit > Select dataالمدى بالثواني في Time range [min max] (s)، والخانة غير مفعّلة.
حذف جزء متصل (بداية أو نهاية أو استراحة)Edit > Select dataنفس المدى، مع تفعيل الخانة تحت on->remove these.
البيانات حول نوع حدث واحدEdit > Select data using eventsنوع الحدث، والحدود بالثواني حوله، و Keep selected.
حذف البيانات حول حدث، مثل نبضة TMS تشبّع المضخّمEdit > Select data using eventsنوع الحدث، وحدود قصيرة حوله، و Remove selected. التوتوريال الرسمي يذكر هذا المثال.
عدة runs لنفس المشارك في داتاست واحدةEdit > Append datasetsأرقام الداتاست بترتيب تسجيلها.

تأكّد

  • قائمة Datasets فيها خمس داتاست: Continuous EEG Data و D1 part 1 و D1 part 2 و D1 merged و D1 around square
  • Frames per epoch للداتاست الأربع الأولى: 30504 و 15361 و 15143 و 30504
  • D1 merged فيها 155 حدثاً، و eeg_eventtypes يعرض boundary 1، وتراه خطاً أحمر عند 120 ثانية في نافذة التمرير
  • isequal(ALLEEG(4).data, ALLEEG(1).data) يعطي 1: الدمج أعاد الإشارة كما كانت تماماً
  • D1 around square فيها 15336 عيّنة و 80 حدث boundary

لقسم Methods

Data from the [N] recording runs were concatenated into a single continuous dataset (pop_mergeset, EEGLAB 2026.1), with boundary events marking the joins.

النسخة الكاملة: https://simplyeeglab.pages.dev/lesson/merge-select-data/

رخصة المحتوى: CC BY-NC-SA 4.0 · MIT (code)

موقع تعليمي مستقل، غير تابع رسمياً لـ EEGLAB أو SCCN.