めもめも ...〆(。_。)
認知心理学・認知神経科学とかいろいろなはなし。 あるいは科学と空想科学の狭間で微睡む。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Psychtoolbox勉強会でミュラーリヤー錯視のデモをやったので復習。
勉強会でも紹介されてたサイト
http://sites.google.com/site/ptbganba/mullerlyerno-sanpuru-puroguramu-wo-yomitoku
と自分の殴り書きめもを見ながら復習していく。
まあ中味の解説は上のサイトのとおりなんだけど。
他の実験にも応用できて参考になりそうなとこや勉強会で躓くひとが出たところをめもっておく。
長いので続きのとこにしまっておく。
勉強会でも紹介されてたサイト
http://sites.google.com/site/ptbganba/mullerlyerno-sanpuru-puroguramu-wo-yomitoku
と自分の殴り書きめもを見ながら復習していく。
まあ中味の解説は上のサイトのとおりなんだけど。
他の実験にも応用できて参考になりそうなとこや勉強会で躓くひとが出たところをめもっておく。
長いので続きのとこにしまっておく。
まずはMファイルを開こう。
Psychtoolboxのフォルダ->PsychDemos->PsychExampleExperimentsで辿りつける。
AssertOpenGL;
OpenGLというやつをつかうときに必要。
OpenGLというのはなんかMRIのときにも聞いたことがあるような気がするが、なんか画面をどうにかするものらしい。
とりあえずこのへんの勉強は未来の自分に丸投げ(いつものスタンス)。
今のところは「最初にこれ書いとけ」でいいや。
function results = MullerLyerIllusion(subID)
結果を保存する変数。
VBと違ってMATLABの便利なところは、変数型をあらかじめ宣言しなくていいところ。
逆に言うと変数の初出がどこだったか一瞬混乱するところ。
(わたしの初めてのプログラミングがVBだったので、基本的にVB知識をベースとした理解になります。あしからず)
んで、これを記述しておいてコマンドウィンドウで
MullerLyerIllusion(12)
と入れたらよい。
で、
if ~exist('subID','var')
subID=66;
end
という記述で、何も入力がなければIDを66にするという設定が作られる。
デフォルトの数字が悪魔的なのは上記サイトでも勉強会でも解かれない謎だった。
ちなみに、
exist('変数','値')
で、変数が指定した値であるかどうか(一致しているか)を確認する。
このvarは分散とかじゃなく、単に何か値が入っているかどうかを確認するもののよう。
(おそらくはisvarnameとかいうのに使われてるのとおんなじ意味合いなんじゃないかと)
んで、前ににょろん(チルダというらしい)がついていると、関数の意味が逆になるらしい。
つまり
~exist('変数','値')
は変数と値が一致してないかを確認するわけだ。
つまり、subIDに値が入ってないと次の行を実行するよ、というわけだ。
次の
fileName=['MLIexpSubj' num2str(subID) '.txt'];
ログファイルを作る。
つまり、fileName=[ファイル名]でファイルを作成できる。
この後にファイル名がこれまでとかぶってないかどうかを確認するくだりがあるんだけど、オクターブ環境のと場合わけがしてあるので、まあ便宜によって削ったり削らなかったりしよう。
んで、num2str(変数)で、変数の数字を文字列型に変換する。
ということはsubIDんときに数字以外をつっこむとエラーを吐く仕様になっていると思われ。
(だったら最初っから文字列型の変数にしたらいいのに、と思ったけどMATLABは文字列型をいじるの苦手なんだろうか?)
date
日付呼び出し。
ntrials=
試行数きめる。
このデモでは、
ntrials=size(condtable,1);
というのをつかっている。
sizeというのが行列のlength取得みたいなかんじ。
condtableというのは行列のことで、(condtable,1)が行、(condtable,2)が列のことを指すみたい。
randperm(変数)
で変数の中味をランダムに並び替える。
なんかMATLABで変数を作成するときに注意しないとランダマイズがおんなじになる場合があるよ、と昔先輩が話していた記憶があるが、昔過ぎるわそのときMATLABさわってなかったわで詳細不明。
あとでランダマイズについて調べること>自分
ceil(値)
は小数を切り上げでまるめて整数にする。変数型まで面倒みてくれるのかは不明。
(検証さぼり)
colHeaders = {いろいろ};
でヘッダの指定。
results=NaN * ones(length(order),length(colHeaders));
で結果をしまう行列を作成。
NaNは不定値らしい。よーするにてきとーな値ってこと?
ones(行,列)
は要素が1で指定した大きさの行列をつくる。
length()は行ベクトルの長さ取得。
sizeとの違いが気になったけど、sizeは行列の大きさで、lengthはベクトルの大きさなんじゃね、と類推。
KbName('UnifyKeyNames');
キーコードをMac OSのに統一するらしい。
Mac信者か。
とか思ったけど、まあキーコードなんて混乱のもとだから素直に従う。
ListenChar(2);
コンソールへの入力をシャットアウトする。
つまり実験中に余計なところをいらわんようにするわけですな。
ただしシャットアウトにしたまんまだと詰む(強制終了しかなくなる)ので、実験終わった後には必ず
ListenChar(0);
をいれておこうね。コンソール入力がオンになるよ。
あとCtrl+Cでもオンになるらしい。
スクリーン(画面)設定は
http://sites.google.com/site/ptbganba/mullerlyerno-sanpuru-puroguramu-wo-yomitoku/kaisetsu-2
をよく読め。
Screen('Flip', スクリーン名);
はVBでいえばHide Form1とShow Form2みたいなかんじ。
一行で書けてべんりね。
KbWait([], 3);
で、キーを押して離すまで待て、と。
[]のなかみが空白ならデフォルトの設定。
,のあとが1だと、押した瞬間までで、2だと離した瞬間まで待て、ということらしい。
ボタン押しっぱなしになる実験とかでつかうのかな。
http://sites.google.com/site/ptbganba/ptbno-komando-no-setsumei/kbwait
参照。
WaitSecs(0.2);KbWait
とかはべんりそうだ。
ちなみにMATLABの時間単位は基本的にSecらしいので気をつけよう。
VBはたしかmsecだったと思うが、そのわりに時間制御がてけとーなのはご愛嬌。
Screen('MakeTexture')はOpenGLでの描画のための関数みたい。
画像読み込みじゃなくて直接描画するほう。
Screen('DrawLine',描画するスクリーン名,色,水平方向の開始点,垂直方向の開始点,水平方向の終了点,垂直方向の終了点);
で線を描いてくれるようだ。
Screenのコマンドどんなのがあるかは、ヘルプじゃなくて単純に
Screen
とMATLABのコマンドウィンドウにうちこむといろいろ出てくる。
Waitsec(数値)
で数値秒ぶん待機。
resptimeで時刻を取得。
StimulusOnsetTimeで刺激描画時間を取得。
よって
rt=resptime-StimulusOnsetTime;
で反応時間が算出される。
keyCodeで押されたキーのキーコードを取得。
kbName(keyCode)
でキーの名前を出力。
isempty(変数)
は、変数のなかみが空だったとき。
break;
は強制終了。
strcmp(変数,変数)
は変数が一致するかどうか
だいたいそんなかんじか。
基本上のサイト見ればなんとかなるなー。
これの反応取得と結果ログの方法のとこはどんな実験にも流用できそうだから、刺激提示の方法をちょっと調べて見よう。
この記事にコメントする
この記事にトラックバックする
トラックバックURL:
カレンダー
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
カテゴリ説明
もっさり:日々の雑感をもっさり。
がっつり:論文や研究関連をがっつり。
びっくり:科学ニュースでびっくり。
まったり:空想科学などでまったり。
ばっかり:デザイン系自己満足ばっかり。
ほっこり:お茶を嗜んでほっこり。
がっつり:論文や研究関連をがっつり。
びっくり:科学ニュースでびっくり。
まったり:空想科学などでまったり。
ばっかり:デザイン系自己満足ばっかり。
ほっこり:お茶を嗜んでほっこり。
最新コメント
※SPAMが多いのでhttpを含むコメントと英語のみのコメントを禁止しました※
最新記事
(05/08)
(04/24)
(04/10)
(02/03)
(11/01)
最新トラックバック
プロフィール
HN:
az
性別:
非公開
自己紹介:
興味のあるトピックス
分野は視覚認知。視知覚にがて。
あと記憶全般。
カテゴリ (semanticsか?) とかも。
最近デコーディングが気になる。
でも基本なんでもこい。
好奇心は悪食。
好きな作家(敬称略)
川上弘美
小林秀雄
津原泰水
森茉莉
レイ・ブラッドベリ
イタロ・カルヴィーノ
グレッグ・イーガン
シオドア・スタージョン
分野は視覚認知。視知覚にがて。
あと記憶全般。
カテゴリ (semanticsか?) とかも。
最近デコーディングが気になる。
でも基本なんでもこい。
好奇心は悪食。
好きな作家(敬称略)
川上弘美
小林秀雄
津原泰水
森茉莉
レイ・ブラッドベリ
イタロ・カルヴィーノ
グレッグ・イーガン
シオドア・スタージョン
ブログ内検索
最古記事
(08/05)
(08/16)
(08/19)
(08/19)
(08/21)
カウンター
フリーエリア
PR