差分トポなど②改造編の続きです
std_chantopo(...
はmファイルですから,
std_chantopo
とコマンドウィンドウに打ってやれば,
処理をしてくれるはずです.
しかしそれを適切に動かすには,
std_chantopo(erpdata, 'condnames', STUDY.condition, 'plottopo', fastif(length(allinds)==1, 'off', 'on'), ...
'datatype', 'spec', 'plotmode', opt.plotmode, 'groupnames', STUDY.group, 'unitx', '\muV', ...
'groupstats', pgroup, 'condstats', pcond, 'interstats', pinter, ...
'chanlocs', locs, 'plotsubjects', opt.plotsubjects, 'topovals', titlestr, plotcurveopt{:});
の括弧内にあるオプションを全部理解して,
適切なデータを引っ張ってこないといけません.
これはめんどい
そこで②で作ったmatファイルです.
先ほどの状態でstd_chantopoを動かすのに
必要な変数を全部保存しておいたんです.
これをMATLABワークスペース上にオープンしてやれば,
まさに
std_chantopo(erpdata, 'condnames', condition, 'plottopo', fastif(length(allinds)==1, 'off', 'on'), ...
'datatype', 'spec', 'plotmode', opt.plotmode, 'groupnames', group, 'unitx', '\muV', ...
'groupstats', pgroup, 'condstats', pcond, 'interstats', pinter, ...
'chanlocs', locs, 'plotsubjects', opt.plotsubjects, 'topovals', titlestr, plotcurveopt{:});
をそのままベタ貼りするだけで,
トポの表示ができてしまいます.
(ここでは元のプログラムを少し改変していますが,
conditionとgroupの前のSTUDY.を抜き取っただけです.
状況によってはSTUDY構造体が非常に重くなっている可能性があるので,
上記の対処を取りました.)
でもそれでは一度行ったトポ表示を繰り返すだけ.
今回は差分を行いたいわけですから,
表示するトポを各条件のモノではなく,
条件差のデータに変えたいということになります.
一目瞭然でわかると思いますが,
std_chantopo(...
のあとの一つ目の引数に
erpdata
というものがあります.
まさにこれがデータです.
中身をみるとセル扱いですが,
条件分のデータが格納されています.
3条件であれば,
< 3 x 1 cell >
です.
そのままでは使えないので
a=erpdata{1};
のように抽出してみると,
1 x 64 x 13
のように,
1,電極,人数
の3次元データになっています.
あとは色々いじって差分にするなり,
なんなり(といっても差分意外にないか)できます.
3条件なら以下のスクリプトを通すと,
条件1-条件2,条件2-条件3,条件3-条件1
の三つを出すようにできます.
for i=1:length(condition)
a(i).data=erpdata{i};
end
erpdata2=erpdata;
for i=1:length(condition)
if i==length(condition), erpdata{i}=a(i).data-a(1).data;
else erpdata{i}=a(i).data-a(i+1).data;
end
end
erpdata2として元データを残しているので,
両方出して確認してみましょう.
上記を応用すればERP波形を書く,
std_plotcurve(alltimes, erpdata, 'condnames', STUDY.condition, 'plottopo', fastif(length(allinds)==1, 'off', 'on'), ...
'datatype', 'spec', 'plotmode', opt.plotmode, 'groupnames', STUDY.group, 'unitx', 'ms', ...
'groupstats', pgroup, 'condstats', pcond, 'interstats', pinter, ...
'chanlocs', locs, 'plotsubjects', opt.plotsubjects, plotcurveopt{:});
も同じように変数書き出し法で,色々できます.
std_chantopo(...
はmファイルですから,
std_chantopo
とコマンドウィンドウに打ってやれば,
処理をしてくれるはずです.
しかしそれを適切に動かすには,
std_chantopo(erpdata, 'condnames', STUDY.condition, 'plottopo', fastif(length(allinds)==1, 'off', 'on'), ...
'datatype', 'spec', 'plotmode', opt.plotmode, 'groupnames', STUDY.group, 'unitx', '\muV', ...
'groupstats', pgroup, 'condstats', pcond, 'interstats', pinter, ...
'chanlocs', locs, 'plotsubjects', opt.plotsubjects, 'topovals', titlestr, plotcurveopt{:});
の括弧内にあるオプションを全部理解して,
適切なデータを引っ張ってこないといけません.
これはめんどい
そこで②で作ったmatファイルです.
先ほどの状態でstd_chantopoを動かすのに
必要な変数を全部保存しておいたんです.
これをMATLABワークスペース上にオープンしてやれば,
まさに
std_chantopo(erpdata, 'condnames', condition, 'plottopo', fastif(length(allinds)==1, 'off', 'on'), ...
'datatype', 'spec', 'plotmode', opt.plotmode, 'groupnames', group, 'unitx', '\muV', ...
'groupstats', pgroup, 'condstats', pcond, 'interstats', pinter, ...
'chanlocs', locs, 'plotsubjects', opt.plotsubjects, 'topovals', titlestr, plotcurveopt{:});
をそのままベタ貼りするだけで,
トポの表示ができてしまいます.
(ここでは元のプログラムを少し改変していますが,
conditionとgroupの前のSTUDY.を抜き取っただけです.
状況によってはSTUDY構造体が非常に重くなっている可能性があるので,
上記の対処を取りました.)
でもそれでは一度行ったトポ表示を繰り返すだけ.
今回は差分を行いたいわけですから,
表示するトポを各条件のモノではなく,
条件差のデータに変えたいということになります.
一目瞭然でわかると思いますが,
std_chantopo(...
のあとの一つ目の引数に
erpdata
というものがあります.
まさにこれがデータです.
中身をみるとセル扱いですが,
条件分のデータが格納されています.
3条件であれば,
< 3 x 1 cell >
です.
そのままでは使えないので
a=erpdata{1};
のように抽出してみると,
1 x 64 x 13
のように,
1,電極,人数
の3次元データになっています.
あとは色々いじって差分にするなり,
なんなり(といっても差分意外にないか)できます.
3条件なら以下のスクリプトを通すと,
条件1-条件2,条件2-条件3,条件3-条件1
の三つを出すようにできます.
for i=1:length(condition)
a(i).data=erpdata{i};
end
erpdata2=erpdata;
for i=1:length(condition)
if i==length(condition), erpdata{i}=a(i).data-a(1).data;
else erpdata{i}=a(i).data-a(i+1).data;
end
end
erpdata2として元データを残しているので,
両方出して確認してみましょう.
上記を応用すればERP波形を書く,
std_plotcurve(alltimes, erpdata, 'condnames', STUDY.condition, 'plottopo', fastif(length(allinds)==1, 'off', 'on'), ...
'datatype', 'spec', 'plotmode', opt.plotmode, 'groupnames', STUDY.group, 'unitx', 'ms', ...
'groupstats', pgroup, 'condstats', pcond, 'interstats', pinter, ...
'chanlocs', locs, 'plotsubjects', opt.plotsubjects, plotcurveopt{:});
も同じように変数書き出し法で,色々できます.