EEGLABをいじっていてエラーが出たので回避法を
EEGLABバージョンはv7.1.3.11bです.
バージョンアップで回避できるエラーかもしれませんが,
コマンドラインからの処理ということも兼ねて.
ICAをかけた後のデータで
Plot-Component activations (scroll)
から除きたいエポックを検討するときのこと.
Scrollの画面からピコピコ選んでリジェクトしようと思うと,
以下のエラーが出ます.
??? 割り当ての次元が一致しません
??? Error using ==> g = get(gcbf, 'userdata');TMPREJ = g.winrej;if g.children, delete(g.children); end;delete(gcbf);if ~isempty(TMPREJ), icaprefix = 'ica';
(中略)
割り当ての次元が一致しません
??? uicontrol Callback の実行中にエラーが発生
面倒なので直接リジェクトしてしまいます.
幸いにもこのエラーが出ても,
どのエポックを除去しようかとマークした情報は,
tmprej
という変数で保持されていました.
これを使ってEEGLABの関数を直接動かします.
ヘルプによれば以下.
Usage:
>> OUTEEG = pop_rejepoch( INEEG, trialrej, confirm)
Inputs:
INEEG - Input dataset
trialrej - Array of 0s and 1s (depicting rejected trials) (size is
number of trials)
confirm - Display rejections and ask for confirmation. (0=no. 1=yes;
default is 1).
Outputs:
OUTEEG - output dataset
Example:
>> data2 = pop_rejepoch( EEG, [1 1 1 0 0 0] );
% reject the 3 first trials of a six-trial dataset
なので
EEG=pop_rejepoch( EEG, tmprej, 1);
とやってしまえばOK.
これを応用すれば,
tmprejに削除したいエポックを1に,
それ以外を0にした行列をつっこんでやればリジェクトしてくれるようですね.
ちなみにリジェクトしたくてマークしたその行列は,
行使されるまで
EEG.reject
という構造体以下に格納されています.
EEGLABバージョンはv7.1.3.11bです.
バージョンアップで回避できるエラーかもしれませんが,
コマンドラインからの処理ということも兼ねて.
ICAをかけた後のデータで
Plot-Component activations (scroll)
から除きたいエポックを検討するときのこと.
Scrollの画面からピコピコ選んでリジェクトしようと思うと,
以下のエラーが出ます.
??? 割り当ての次元が一致しません
??? Error using ==> g = get(gcbf, 'userdata');TMPREJ = g.winrej;if g.children, delete(g.children); end;delete(gcbf);if ~isempty(TMPREJ), icaprefix = 'ica';
(中略)
割り当ての次元が一致しません
??? uicontrol Callback の実行中にエラーが発生
面倒なので直接リジェクトしてしまいます.
幸いにもこのエラーが出ても,
どのエポックを除去しようかとマークした情報は,
tmprej
という変数で保持されていました.
これを使ってEEGLABの関数を直接動かします.
ヘルプによれば以下.
Usage:
>> OUTEEG = pop_rejepoch( INEEG, trialrej, confirm)
Inputs:
INEEG - Input dataset
trialrej - Array of 0s and 1s (depicting rejected trials) (size is
number of trials)
confirm - Display rejections and ask for confirmation. (0=no. 1=yes;
default is 1).
Outputs:
OUTEEG - output dataset
Example:
>> data2 = pop_rejepoch( EEG, [1 1 1 0 0 0] );
% reject the 3 first trials of a six-trial dataset
なので
EEG=pop_rejepoch( EEG, tmprej, 1);
とやってしまえばOK.
これを応用すれば,
tmprejに削除したいエポックを1に,
それ以外を0にした行列をつっこんでやればリジェクトしてくれるようですね.
ちなみにリジェクトしたくてマークしたその行列は,
行使されるまで
EEG.reject
という構造体以下に格納されています.