المحطة 1 · الدرس 4
ALLEEG وإدارة الداتاست
eeglab_data.set (D1) · لا شيء: البيانات كما نزّلتها.تنزيل البيانات (يفتح في نافذة جديدة)سكربت الوصول لهذه الحالة
[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');
eeglab redraw;زر الرجوع في متصفحك يعيدك لنفس المكان الذي كنت فيه، فافتح ما تشاء بلا قلق.
الفكرة باختصار
كل خطوة معالجة تنتج نسخة جديدة من بياناتك. ويستطيع EEGLAB أن يحتفظ بعدة نسخ في الذاكرة في نفس الوقت، فتقارن قبل وبعد، أو تعود خطوة للخلف دون أن تفتح الملف من جديد.
يستخدم EEGLAB لذلك ثلاثة متغيّرات:
قبل وبعد
أسئلتك بعد هذا، كل جواب في قسمه:
لماذا أحتاج هذه الخطوة؟
السبب بالتفصيل، والمصطلحات التي تحتاجها
ALLEEG: الرفّ الذي يحمل كل داتاستdatasetملف بيانات EEG واحد محمّل في EEGLAB مع معلوماته. (dataset) في الذاكرة.EEG: الداتاست التي تعمل عليها الآن.CURRENTSET: رقم هذه الداتاست على الرفّ.
إذا لم تعرف أي داتاست هي الحالية، قد تفلتر النسخة الخطأ أو تحفظ فوق الأصل. هذا الدرس يعلّمك كيف تعرف دائماً أين أنت.
لماذا أحتاج هذه الخطوة؟
ALLEEG: الرفّ الذي يحمل كل الداتاست (dataset) في الذاكرة.EEG: الداتاست التي تعمل عليها الآن.CURRENTSET: رقم هذه الداتاست على الرفّ.
إذا لم تعرف أي داتاست هي الحالية، قد تفلتر النسخة الخطأ أو تحفظ فوق الأصل. هذا الدرس يعلّمك كيف تعرف دائماً أين أنت.
كيف أطبّقها في EEGLAB؟
14 خطوة من القوائم
1. غيّر شيئاً وخزّنه كداتاست جديدة
حتى يكون عندنا شيء نخزّنه، نجري تغييراً بسيطاً: نحذف قناتي العين EOG1 و EOG2. هذا مثال لهذا الدرس فقط.
- و
eeglab_data.setمفتوحة، افتح Edit ثم Select data. - في صف Channel(s) اكتب
EOG1 EOG2. - فعّل خانةfield (in a dialog)مكان في نافذة نكتب فيه قيمة أو نختارها. في نفس الصف، تحت on->remove these. بدون هذه العلامة يُبقي EEGLAB هاتين القناتين ويحذف كل قناةchannelالإشارة المسجّلة من قطب واحد، وهي ما يعرضه EEGLAB. (channel) الأخرى.
- اضغط OK.
- تظهر نافذة تسأل What do you want to do with the new dataset?. في Name it: استبدل
Continuous EEG DataبـD1 no EOG. - اترك Save it as file: غير مفعّلة. الداتاست الجديدة تبقى في الذاكرة فقط.
- اترك Overwrite it in memory (set=yes; unset=create a new dataset) غير مفعّلة، حتى يبقى الأصل داتاست رقم 1.
- اضغط OK.
تبدأ النافذة الرئيسية الآن بـ #2: D1 no EOG، و Channels per frame يعرض 30.
2. تنقّل بين الداتاست
- افتح Datasets. فيها
Dataset 1:Continuous EEG DataوDataset 2:D1 no EOG. والحالية عليها علامة صح. - اختر
Dataset 1:Continuous EEG Data. تعرض النافذة الرئيسية#1و 32 قناة من جديد. - أي قائمة تستخدمها الآن تعمل على الداتاست 1. قبل كل خطوة، انظر إلى السطر الأول في النافذة الرئيسية لتعرف أي داتاست هي الحالية.
3. احذف داتاست من الذاكرة
- افتح Edit ثم Delete dataset(s) from memory.
- في Dataset(s) to delete: اكتب
2. - اضغط OK. قائمة Datasets فيها الآن الداتاست 1 فقط.
الحذف من الذاكرة لا يمسّ أي ملف على القرص. والداتاست التي لم تُحفظ أبداً تضيع عند حذفها.
كيف أطبّقها في EEGLAB؟
1. غيّر شيئاً وخزّنه كداتاست جديدة
حتى يكون عندنا شيء نخزّنه، نجري تغييراً بسيطاً: نحذف قناتي العين EOG1 و EOG2. هذا مثال لهذا الدرس فقط.
- و
eeglab_data.setمفتوحة، افتح Edit ثم Select data. - في صف Channel(s) اكتب
EOG1 EOG2. - فعّل الخانة في نفس الصف، تحت on->remove these. بدون هذه العلامة يُبقي EEGLAB هاتين القناتين ويحذف كل القنوات (channel) الأخرى.
- اضغط OK.
- تظهر نافذة تسأل What do you want to do with the new dataset?. في Name it: استبدل
Continuous EEG DataبـD1 no EOG. - اترك Save it as file: غير مفعّلة. الداتاست الجديدة تبقى في الذاكرة فقط.
- اترك Overwrite it in memory (set=yes; unset=create a new dataset) غير مفعّلة، حتى يبقى الأصل داتاست رقم 1.
- اضغط OK.
تبدأ النافذة الرئيسية الآن بـ #2: D1 no EOG، و Channels per frame يعرض 30.
2. تنقّل بين الداتاست
- افتح قائمة Datasets. فيها
Dataset 1:Continuous EEG DataوDataset 2:D1 no EOG. والحالية عليها علامة صح. - اختر
Dataset 1:Continuous EEG Data. تعرض النافذة الرئيسية#1و 32 قناة من جديد. - أي قائمة تستخدمها الآن تعمل على الداتاست 1. قبل كل خطوة، انظر إلى السطر الأول في النافذة الرئيسية لتعرف أي داتاست هي الحالية.
3. احذف داتاست من الذاكرة
- افتح Edit ثم Delete dataset(s) from memory.
- في Dataset(s) to delete: اكتب
2. - اضغط OK. قائمة Datasets فيها الآن الداتاست 1 فقط.
الحذف من الذاكرة لا يمسّ أي ملف على القرص. والداتاست التي لم تُحفظ أبداً تضيع عند حذفها.
كيف أكتبها بالكود؟
نفس الخطوات في 17 أسطر MATLAB
% Start EEGLAB and load the sample dataset as dataset 1
[ALLEEG, EEG, CURRENTSET, ALLCOM] = eeglab;
sampleFolder = fullfile(fileparts(which('eeglab')), 'sample_data');
EEG = pop_loadset('filename', 'eeglab_data.set', 'filepath', sampleFolder);
[ALLEEG, EEG, CURRENTSET] = eeg_store(ALLEEG, EEG, 0);
% Remove the two eye channels and store the result as a new dataset
EEG = pop_select(EEG, 'rmchannel', {'EOG1', 'EOG2'});
[ALLEEG, EEG, CURRENTSET] = pop_newset(ALLEEG, EEG, CURRENTSET, ...
'setname', 'D1 no EOG', 'gui', 'off');
CURRENTSET % 2
[ALLEEG(1).nbchan ALLEEG(2).nbchan] % 32 30
% Go back to dataset 1
[ALLEEG, EEG, CURRENTSET] = pop_newset(ALLEEG, EEG, CURRENTSET, 'retrieve', 1);
EEG.nbchan % 32
% Delete dataset 2 from memory (its file, if any, is not touched)
ALLEEG = pop_delset(ALLEEG, 2);
eeglab redraw;pop_newsetمعCURRENTSETيخزّنEEGالمعدّلة كداتاست جديدة بعد الحالية. ومع'gui', 'off'لا يفتح نافذة التسمية.'retrieve', 1يجعل الداتاست 1 هي الحالية من جديد، كما يفعل اختيارها من قائمة Datasets.
كيف أكتبها بالكود؟
% Start EEGLAB and load the sample dataset as dataset 1
[ALLEEG, EEG, CURRENTSET, ALLCOM] = eeglab;
sampleFolder = fullfile(fileparts(which('eeglab')), 'sample_data');
EEG = pop_loadset('filename', 'eeglab_data.set', 'filepath', sampleFolder);
[ALLEEG, EEG, CURRENTSET] = eeg_store(ALLEEG, EEG, 0);
% Remove the two eye channels and store the result as a new dataset
EEG = pop_select(EEG, 'rmchannel', {'EOG1', 'EOG2'});
[ALLEEG, EEG, CURRENTSET] = pop_newset(ALLEEG, EEG, CURRENTSET, ...
'setname', 'D1 no EOG', 'gui', 'off');
CURRENTSET % 2
[ALLEEG(1).nbchan ALLEEG(2).nbchan] % 32 30
% Go back to dataset 1
[ALLEEG, EEG, CURRENTSET] = pop_newset(ALLEEG, EEG, CURRENTSET, 'retrieve', 1);
EEG.nbchan % 32
% Delete dataset 2 from memory (its file, if any, is not touched)
ALLEEG = pop_delset(ALLEEG, 2);
eeglab redraw;pop_newsetمعCURRENTSETيخزّنEEGالمعدّلة كداتاست جديدة بعد الحالية. ومع'gui', 'off'لا يفتح نافذة التسمية.'retrieve', 1يجعل الداتاست 1 هي الحالية من جديد، كما يفعل اختيارها من قائمة Datasets.
أي قيمة أختار؟
القيم المناسبة حسب هدف تحليلك
الاختيار في النافذة التي تظهر بعد كل خطوة:
| الخيار | متى تستخدمه |
|---|---|
| إنشاء داتاست جديدة (الافتراضي) | تريد المقارنة مع النسخة السابقة، أو لست متأكداً من الخطوة بعد. |
| Overwrite it in memory | الذاكرة محدودة، أو لم تعد تحتاج النسخة السابقة في هذه الجلسة. |
| Save it as file: | تريد الاحتفاظ بهذه النسخة بعد إغلاق MATLAB. أعطها اسماً جديداً حتى لا تكتب فوق الملف الأصلي. |
عادة جيدة: سمِّ كل نسخة باسم يقول ماذا فعلت بها، مثل D1 no EOG أو D1 filtered 1Hz. قائمة داتاست كلها Continuous EEG Data سهلة الخلط.
أي قيمة أختار؟
الاختيار في النافذة التي تظهر بعد كل خطوة:
| الخيار | متى تستخدمه |
|---|---|
| إنشاء داتاست جديدة (الافتراضي) | تريد المقارنة مع النسخة السابقة، أو لست متأكداً من الخطوة بعد. |
| Overwrite it in memory | الذاكرة محدودة، أو لم تعد تحتاج النسخة السابقة في هذه الجلسة. |
| Save it as file: | تريد الاحتفاظ بهذه النسخة بعد إغلاق MATLAB. أعطها اسماً جديداً حتى لا تكتب فوق الملف الأصلي. |
عادة جيدة: سمِّ كل نسخة باسم يقول ماذا فعلت بها، مثل D1 no EOG أو D1 filtered 1Hz. قائمة داتاست كلها Continuous EEG Data سهلة الخلط.
كيف أتأكد أنها نجحت؟
4 فحوص سريعة
- بعد الخطوة 1، السطر الأول في النافذة الرئيسية
#2: D1 no EOG، و 30 قناة. - قائمة Datasets فيها داتاستان، وعلى الحالية علامة صح.
- بعد التنقّل إلى الداتاست 1، تعرض النافذة الرئيسية
#1و 32 قناة. - بعد الحذف، قائمة Datasets فيها الداتاست 1 فقط.
لا شيء في هذا الدرس يُحفظ على القرص، وملف عيّنةsampleقيمة واحدة للإشارة في لحظة زمنية واحدة. يبقى كما هو.
كيف أتأكد أنها نجحت؟
- بعد الخطوة 1، السطر الأول في النافذة الرئيسية
#2: D1 no EOG، و 30 قناة. - قائمة Datasets فيها داتاستان، وعلى الحالية علامة صح.
- بعد التنقّل إلى الداتاست 1، تعرض النافذة الرئيسية
#1و 32 قناة. - بعد الحذف، قائمة Datasets فيها الداتاست 1 فقط.
لا شيء في هذا الدرس يُحفظ على القرص، وملف العيّنة يبقى كما هو.
ما الأخطاء التي يقع فيها كثيرون؟
4 أخطاء، وكيف تتجنّبها
- العمل على الداتاست الخطأ. بعد التنقّل من قائمة Datasets، كل خطوة تنطبق على الداتاست التي اخترتها. تحقّق من رقم
#في السطر الأول من النافذة الرئيسية قبل كل خطوة. - ظنّ أن التخزين في الذاكرة يحفظ الملف. الداتاست الجديدة تعيش في الذاكرة حتى تحفظها. وتضيع عند إغلاق MATLAB.
- نسيان العلامة تحت on->remove these. بدونها يُبقي Edit ثم Select data القناتين
EOG1وEOG2فقط، فتكون في الداتاست الجديدة قناتان بدل 30. - تغيير
EEGفي سكربتscriptملف أوامر MATLAB ينفّذ خطوات المعالجة بالترتيب. ونسيانeeg_storeأوpop_newset. التغيير في المتغيّرEEGفقط، وقائمة Datasets لا تعرف عنه.
ما الأخطاء التي يقع فيها كثيرون؟
- العمل على الداتاست الخطأ. بعد التنقّل من قائمة Datasets، كل خطوة تنطبق على الداتاست التي اخترتها. تحقّق من رقم
#في السطر الأول من النافذة الرئيسية قبل كل خطوة. - ظنّ أن التخزين في الذاكرة يحفظ الملف. الداتاست الجديدة تعيش في الذاكرة حتى تحفظها. وتضيع عند إغلاق MATLAB.
- نسيان العلامة تحت on->remove these. بدونها يُبقي Edit ثم Select data القناتين
EOG1وEOG2فقط، فتكون في الداتاست الجديدة قناتان بدل 30. - تغيير
EEGفي سكربت ونسيانeeg_storeأوpop_newset. التغيير في المتغيّرEEGفقط، وقائمة Datasets لا تعرف عنه.
متصفحك لا يسمح بحفظ التقدّم. كل الدروس متاحة، لكن علامات الإكمال لن تُحفظ.
تم. حُفظ تقدّمك في هذا المتصفح.تراجعأين أقرأ أكثر؟
1 مراجع: التوثيق الرسمي أولاً
- EEGLAB Tutorialتوثيق3. Dataset management
مكتوب لـ EEGLAB 2026.1 · 2026-10-28
للتوسّع
- EEGLAB Tutorial: https://eeglab.org/tutorials/03_Dataset_management/datasets.html (3. Dataset management)
تحتاج مساعدة؟
اسأل، أو شاركنا رأيك، أو بلّغ عن خطأ
- بلّغ عن خطأ علمي · يحتاج حساباً على GitHub. لا تملك حساباً؟ استخدم "شاركنا رأيك".