いくつかのEEGデータを分析する必要があり、前処理手順を自動化しようとしています。EEGLABの異なるデータセットと条件のループについて
私は40人の参加者を持っています。すべての参加者は、4つの条件に対して4つの異なるファイルを持っています。
1-1
1-2
1-3
1-4
2-1
2-2
2-3
2-4
...
40-4までのファイルがBioSemi(な.bdf)からあるように、ファイルが保存されている
Iは、前処理手順を自動化することができましたしかし、別のファイルを選ぶ必要があるたびに、スクリプトを実行して保存してください。
私はそれだけで(1-1を取る、前処理を実行する、保存する、1-2を取る...など)forループを実行したいと思います。
私がこれまでに得たものを貼り付けています。
私は一日中ループを書くことを試みてきましたが、うまくいきません。
本当に助けていただければ幸いです。
subject = '1-1.bdf'
%Open EEGLAB and inizialize several EEGLAB variables (listed in the output
%function
[ALLEEG EEG CURRENTSET ALLCOM] = eeglab;
%Load a file
%EEG=pop_loadset; % pop up window to input arguments
EEG = pop_biosig(subject) %Reads in the dataset frin a BIOSEMI file
% Stores the dataset into EEGLAB
[ALLEEG EEG CURRENTSET ] = eeg_store(ALLEEG, EEG);
%Change sampling rate to 512
EEG = eeg_checkset(EEG);
EEG = pop_resample(EEG, 512);
[ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, CURRENTSET); %save it as a new dataset
% Edit Channel Location
EEG = eeg_checkset(EEG);
EEG=pop_chanedit(EEG, 'lookup','D:\\Matlab\\eeglab_current\\eeglab13_5_4b\\plugins\\dipfit2.3\\standard_BESA\\standard-10-5-cap385.elp');
% Store the dataset into EEGLAB
[ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, 2,'overwrite','on','gui','off');
% Add some comments
EEG.comments = pop_comments(EEG.comments,'','Sampling rate was changed to 512.',1);
% You can see the comments stored with the dataset either by typing >> EEG.comments or selecting the menu option Edit->About this dataset.
%Select Data. Remove EXG5:EXG8
EEG = eeg_checkset(EEG);
EEG = pop_select(EEG,'nochannel',{'EXG5' 'EXG6' 'EXG7' 'EXG8'});
[ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, 2,'overwrite','on','gui','off');
%HighPassFilter 0.5
EEG = eeg_checkset(EEG);
EEG = pop_eegfilt(EEG, 0.5, 0, [], [0], 0, 0, 'fir1', 0);
[ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, 2,'overwrite','on','gui','off');
%LowPassFilter 50
EEG = eeg_checkset(EEG);
EEG = pop_eegfilt(EEG, 0, 50, [], [0], 0, 0, 'fir1', 0);
[ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, 2,'overwrite','on','gui','off');
%ReReference to 35 36 (EXG3. EXG4)
EEG = eeg_checkset(EEG);
EEG = pop_reref(EEG, [35 36]);
[ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, 2,'overwrite','on','gui','off');
% Reject Continuous By Eye
EEG = eeg_checkset(EEG);
pop_eegplot(EEG, 1, 0, 1);
eeglab redraw % Update the EEGLAB window to view changes
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Automatic Channel Rejection
EEG = eeg_checkset(EEG);
EEG = pop_rejchan(EEG, 'elec',[1:34] ,'threshold',5,'norm','on','measure','prob');
[ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, 2,'overwrite','on','gui','off');
eeglab redraw % Update the EEGLAB window to view changes
こんにちは@gariepyのリストを取得するには
dir('1-*.bdf')
のように、ファイルのカスタマイズされたリストを取得するには、ワイルドカードを使用することができ、あなたの応答のためにあなたをとても感謝し、私は本当に感謝しています。残念ながら私はまだそれを動作させることはできません。申し訳ありませんが、これはプログラミングやMatlabを使用した初日です。 'pathname'または' full_pathname'と書かれているところで、 'D:/ EEG/EEG Recordings'のようにpath_name全体を入力する必要がありますか? これを動作させるには、 'new-> function'コードをすべてコピー&ペーストしてください。'SethPath-> AddFolder'フォルダに関数を保存します。 「無効な文が含まれているため、選択したセッションを評価できません」 – Gluはい、コードをファイルに保存します。この場合は、run_script_with_loop.mと呼びます。 'function'はファイル名にマッチします。ファイルを保存するフォルダがMATLABのパスにあることを確認してください。次に '%run_script_with_loop( 'D:\ MATLAB \ eeglab_current \ data_folder')'と打ち込むことができます。ここで、 'data_folder'は.bdfファイルがある場所のフルネームです。 – gariepy
また、 '...'は、あなたの例のすべてのコードをどこに置くべきかを表すことを意図しています。 – gariepy