忍者ブログ

めもめも ...〆(。_。)

認知心理学・認知神経科学とかいろいろなはなし。 あるいは科学と空想科学の狭間で微睡む。

2025/03    02≪ 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  31  ≫04
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

そういえばMATLABでの制御文とか演算の書き方をまとめとくのを忘れていた。

・・・今更すぎるけど、たぶんMATLABをさわらん時期がしばらく続いたらまるっと忘れてしまうに違いないのでさっくりまとめておく。
ちなみに、...... としてるところは任意の記述ということにして、ここからコピペをすることを想定して......以外はコメントアウトになるように書いとく。


%●if文(条件判定)

if ......
 ......
end

%Ifん中で分岐する場合は


if ......
 ......
 [elseif ......
 .......
 else
 ......
 end]
end

%{
んで条件分岐に必要な演算として
>  %より大きい
>=  %以上。順番注意
<  %より小さい
<=  %以下
==  %等しい
~=  %等しくない
&  %AND/および。先に書いてあるほうが優先
&&  %AND/および。優先順位なし
|  %OR/または。先に書いてあるほうが優先
||  %OR/または。優先順位なし
any(v>n)  %任意のベクトルvの要素のどれかが任意の数字nより大きいなら。勿論>の部分は置換可
all(v>=n)  %任意のベクトルvの要素のすべてが任意の数字n以上
上2つはベクトルだけじゃなくて行列にも適応可。
行列の場合はnの前に.をつける。
判定は列ごとに処理。結果は行ごとに返す。
%}


%●for文(特定回数の繰り返し)

for n=x:y  %nは任意の変数、xとyは任意の数字あるいは変数
 ......
end

%{
試行数とか決めるときにつかうよねー。
注意しなくてはいけないのは、VBだとfor文でつかう変数でiとかjとかつかうけど、MATLABではiとかjとかは虚数を意味するのでなるべく使わないようにしよう。
%}

%●while文(条件を満たすまでの繰り返し)

while ......
 ......
end

%ただし、このままでは無限ループになる可能性がある
%なので、ループ脱出条件をしっかりつける

while ......  %ループする条件を記述
  if ...... ; %終了条件を記述
    ...... ;  %終了前の処理を記述
    break %脱出
  end
 ......  %ループする処理を記述
end


%●switch文(条件分岐)

n= ...... %nに任意の整数または文字列を入れる
%わかりやすさのためにここでは整数だとする
switch n
 case 1
   ......
  case 2
   ......
  otherwise %「上記以外」のこと
   ......
end

%要するにVBで言うところのcase



%うむ、なんだかMATLABに慣れてきたような気がするぞ。

Psychtoolbox勉強会でミュラーリヤー錯視のデモをやったので復習。
勉強会でも紹介されてたサイト
http://sites.google.com/site/ptbganba/mullerlyerno-sanpuru-puroguramu-wo-yomitoku
と自分の殴り書きめもを見ながら復習していく。

まあ中味の解説は上のサイトのとおりなんだけど。
他の実験にも応用できて参考になりそうなとこや勉強会で躓くひとが出たところをめもっておく。

長いので続きのとこにしまっておく。

前回なんかエラーはきながらもPsychtoolboxをインストールしたわけですが。
Psychtoolboxがちゃんとインストールできてるかの確認のためにも、ヘルプをいっぺん拝んでおこう。

help psychtoolbox

とコマンドウィンドウに打ち込めば、だらだらっとヘルプの文章がでてくる。
以下ヘルプの内容をざくーりまとめる。

PsychtoolboxはMATLAB上で関数としてつかえるべんりなやつだよ!

help 関数名

とコマンドウィンドウに打ち込めばヘルプも出してくれるよ!
(ただしヘルプ文法を理解しないと何のことかわからんけどな!)
Psychtoolboxの関数はそれぞれヘルプだけじゃなくて、MEXファイル(MATLAB版実行ファイル)もあるよー。
なんかいろいろこまかいことも書くけど、もし間違いがあったら訂正してくえるとうれしいな☆

まあそんなわけで、ちょいとお試しに

help Snd

ってコマンドウィンドウにうってみてくれ。

err = Snd(command,[sig],[rate])

って出るだろう?
正直MATLABに慣れてないと意味不だろ?
これはね、Sndには(コマンド=引数のこと)が必要だよ!って意味らしい。
[]で括られてる[sig]や[rate]はなくてもおk。指定もできる。指定するときは,でわけて書く。
よくある書き方は、

Snd('Play','Quack')

とかかな。

(って書いてあるけどなんのこっちゃああああああ。
そもそもSndは何する関数なんだよ。ぜんぜんわかんねーよ。
と思ってSnd('Play','Quack')やってみたら

ans =

     0

って出た。意味不すぎワロタ。
おとなしくhelp Sndしてみたら、これはサウンドドライバ古すぎpgrみたいなこと言われたお(´;ω;`)
だったらhelp psychtoolboxの例に出すなっての!
help PsychPortAudioとhelp InitializePsychSoundしてPsychPortAudioについて調べれって言われたお。

Snd('Play',signal,[rate])
で音を出してくれるらしい。
でも遅いわタイミングはずれるわクラッシュする可能性あるわさんざんな関数w
ということだそーな。
改めて言おう、そんなんhelp psychtoolboxの例に出すな!)

重要そうな関数のひとつに、Screenがある。
これはPsybasicというのに含まれる。
詳しく知りたきゃ

       help psychbasic
       help screen
       screen openwindow?

をそれぞれ試せ。

あと有用なデモを見るために

       help psychdemos

もやっとけ。

他にも、PsychDocumentationというフォルダにTips書いたファイルあるから気が向いたら読んどけ。
続きはウェブで(http://psychtoolbox.org/)。
(ちなみにこのアドレスをブラウザに打ち込むとPsychtoolboxのWikiにとばされる)


論文に引用するのであれば、こんなふーに書いてね☆

"We wrote our experiments in Matlab, using the Psychophysics Toolbox extensions (Brainard, 1997;
  Pelli, 1997)."
  Brainard, D.H. (1997) The Psychophysics Toolbox, Spatial Vision 10:443-446.
  Pelli, D.G. (1997) The VideoToolbox software for visual psychophysics: Transforming numbers into movies, Spatial Vision 10:437-442.

(おい2こめのPelliは引用されてないぞいいのか)

そしてとーとつにPsychtoolboxのフォルダをいくつか紹介するよ☆
  PsychAlpha             - Under development. Experimental, risky, undocumented.
(いわゆる「がめんはかいはつちゅうのものです」)
  PsychAlphaBlending     - OpenGL alpha-channel blending utilities and constants. 
(画像合成でつかうアルファチャネルのことか)
  PsychBasic             - Basic support routines for psychophysics.
(心理物理でつかう基本のものがはいっています)
  PsychBeta              - Under development.
(「がめんはry)
  PsychCal               - Calibrate your video monitors.
(モニタのキャリブレーションでつかいます)
  PsychCalDemoData       - Demo calibration data.
(キャリブレーションのデモをするよ)
  PsychColorimetric      - Colorimetric calculations.
(色計算用のものがはいってます。さっき中見たらMunsell色体系に基づくのもあるようだ)
  PsychColorimetricData  - Standard colorimetric data.
(色計算のデモ)
  PsychContributed       - Contributed programs.
(なんかよくわからんがタスクバーとかタブとかの設定に関するものが入ってるみたい)
  PsychDemos             - Show how to use the Psychtoolbox.
(デモをするよ)
  PsychDocumentation     - Documentation about specific topics.
(なんか「こうしたいときどうすれば」的なもの詰め合わせっぽい。テキストの表示とかマルチディスプレイの設定とかなぜか某学会のポスターとか)
  PsychFiles             - Process text files.
(文字列の扱い方に関するものがはいってるようだ)
  PsychGamma             - Fit monitor gamma functions.
(ガンマ補正用のものがはいってる)
  PsychGLImageProcessing - Built-in image processing via graphics hardware.
(グラフィックハードウェア関連。モニタの輝度とかいじる用か?)
  PsychHardware          - Interface to plug-in hardware.
(ハードウェア関連。キーボードやマウスとか。Eyelink関連がこの中に入ってた。そしてなぜかあるGamePad)
  PsychInitialize        - Initialize and deinitialize MATLAB
(MATLABを初期化するらしい。できればそんな目にあいたくねえ)
  PsychMatlabTests       - Document the few bugs in Matlab 5.2.1.
(バグ情報がはいってるらしい)
  PsychObsolete          - Obsolete routines, still present for compatibility.
(昔のVerの)
  PsychOpenGL            - Routines for low-level access to OpenGL 3D graphics.
(OpenGLという3D用のなんかめんどくさいやつ)
  Psychometric           - Psychometric function fitting.
(ログ管理とかだろうか?よくわからん)
  PsychOneliners         - Trivial, but handy, functions.
(なんかちょっとした関数はいってるということだろーか。なんかいろいろある)
  PsychOptics            - Optics calculations, mostly for human optics.
(視覚実験用のなにか。よくわからん)
  PsychPriority          - Priority and Rush.  (formerly within PsychBasic)
(Priorityに関するものらしいが何かよくわからん)
  PsychProbability       - Probability and statistics.
(統計とかにつかう分布とか)
  PsychRects             - Manipulate rectangles for drawing.
(長方形描画用。ってそんなに長方形に気合いれてどうする)
  PsychSignal            - Signal processing and math routines.
(信号処理用。バンドパスフィルタあるっぽい)
  PsychTests             - Evaluate performance of software and hardware.
(ソフトウェアやハードウェアの動作調べる用っぽい。直訳だな自分)
  PsychVideoCapture      - Functions for realtime video capture.
(Realtimeビデオプレイヤー向け)
  Quest                  - Threshold estimation procedure.
(閾値推定・・・って、なんの?なんかシミュレーションとか用?)

とりあえずヘルプは以上。
関数とかはもっとこまかく見ていったほうがいいと思うが、まあそのへんは必要に応じて見ることにする。

次はデモみるかMATLAB文法かな。
まあどっちでもいいや。
また気が向いたときに。

と、いうわけで前回MATLABをいじることを決意したのはよかったんですが、そのきっかけとなった「Psychtoolbox勉強会やろうぜ」という提案の肝心のPsychtoolboxをインストールしてなかったことに気づいた。

千里の道も一歩から、どんなソフトウェアでも使いこなすにはまずインストールしてから。
というわけで、Psychtoolboxをインストールしてみることにします。
基本的にわたくしめは情弱者なんでWindows使用です。


とりあえず、てけとにぐぐってでてきたPsychtoolbox Wiki頼り。
psychtoolbox.org/wikka.php
ここのダウンロードのページ(psychtoolbox.org/wikka.php)で指示にしたがってインストールすることにします。
このページでは、PsychtoolboxのVer.3をインストールするので、Ver.2以前を持ってるひとはそれをきちんとアンインストールするようにとの指示が出ております。
わたしは今回初めてさわるのでそのへんすっとばします。

1.なぜかわからないがSubversionというツールをインストールする。
リンクをクリックするとフリーのとシェアウェアのとをダウンロードできるページが開くんで、自分の環境に合ったVerのをダウンロードしてから実行。
するとインストールされます。
なんかよくわからんけどまあいいや。

2.赤字でリンクされているPsychtoolbox Installerを右クリックで「リンク先を名前をつけて保存」で保存する。
「デスクトップに保存しろ」ってWikiには書いてあるけど、正直どこでもいい。

3.Cドライブ直下に、"toolbox"という名前の新しいフォルダを作成する。

4.つくったtoolboxフォルダに、さっきおとしたInstaller(ファイル名はDownloadPsychtoolbox.m)を移動させる。

5.MATLABを開く。

6.コマンドウィンドウに、

cd C:/toolbox
DownloadPsychtoolbox('C:/toolbox')

とタイプする。

7.なんかインストール始まるからうにょうにょしながら待つ。

8.なんかわたしのときには、

'https://svn.berlios.de:443' のサーバ証明書の認証中にエラーが発生しました:
 - 証明書は信頼のおける機関が発行したものではありません。証明書を手動で認証
   するためにフィンガープリントを用いてください!
証明書情報:
 - ホスト名: *.berlios.de
 - 有効範囲: Tue, 25 Jan 2011 00:35:19 GMT から Wed, 25 Jan 2012 00:35:19 GMT まで
 - 発行者: BerliOS, FhG FOKUS, Berlin, Berlin, DE
 - フィンガープリント: 86:8d:c3:01:ba:8b:89:3a:86:00:e6:e7:7f:62:9f:de:ac:8b:b0:d1
拒否しますか (R)、一時的に承認しますか (t)、常に承認しますか (p)?

というのが出た。
むりくり実行しちゃえ☆
ってエンター押すとエラーはきよるので、そこはおとなしくtかpを打つ。

場合によってはsvnエラーというのをはきよる。
これはさっきのSubversionというやつらしい。どうもこいつをつかってネットからPsychtoolboxをおとしているようだ。なんだそういうことだったのか。
で、svn関係のエラーをはいても、ネットだから鯖落ちエラーなだけっぽい。
エラーはいたらしばらく待ってリトライしてねってWikiに書いてあった。
リトライすると、古いファイルは消しますかってきかれるからここはすなおにy(Yes)おしといたほうがいい。

9.コマンドウィンドウにインストールできたよーって言われるまでうにょうにょしてまつ。
さいごにEnjoy!って言われるから、まあおいしくPsychtoolboxをいただきましょう。


とりあえず今日はインストールするだけで満足した。
また今度いじってみよう。

MATLABおよびPsychtoolboxの勉強会やろーぜーって声をかけられたのですが、よく考えたらSPM以外でMATLABさわってなかった。
ちょうどよい機会なのでちょもちょもっとMATLABをつかってみようと思う。

とりあえずやってみた行列のかきかた。

行列にする変数=[要素1の1 要素1の2 要素1の3;要素2の1 要素2の2 要素2の3]
とかそんなかんじで

A11 A12 A13
A21 A22 A23

という行列を定義できる。

これを利用して連立方程式を解くことができる。

ax+by=c
dx-ey=f
みたいな式で、
A=[a b; d -e]
B=[c; f]
と定義して
X=[x; y]
とすると、さっきの式は
AX=B
となるから、解となるXを求めるには両辺にAの逆行列をかければよい。

ということでMATLAB上では
X=inv(A)*B
で計算できる。 


ふむ。
基本ベクトル計算なのですな。
まあ千里の道も一歩から。
おまえそう言うてMRIの勉強もちゃんとしてへんやんけー。
というつっこみの声も聞こえなくもないですが、まあMRIの勉強するのにMATLABのふるまいを勉強しておくのも重要なような気がするので、結局はぜんぶだいじなおべんきょうなのですよ。
ということにしておく。

そして自分がPsychtoolboxをインストールしてないことにきづいた。
ぜんぜんはじめられてないやーん。

カレンダー
02 2025/03 04
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 31
カテゴリ説明
もっさり:日々の雑感をもっさり。
がっつり:論文や研究関連をがっつり。
びっくり:科学ニュースでびっくり。
まったり:空想科学などでまったり。
ばっかり:デザイン系自己満足ばっかり。
ほっこり:お茶を嗜んでほっこり。
最新コメント
※SPAMが多いのでhttpを含むコメントと英語のみのコメントを禁止しました※
[01/20 NONAME]
[05/07 ぱるぱる]
[05/06 ぱるぱる]
[05/06 ぱるぱる]
[08/29 初見名無し]
最新トラックバック
プロフィール
HN:
az
性別:
非公開
自己紹介:
興味のあるトピックス
 分野は視覚認知。視知覚にがて。
 あと記憶全般。
 カテゴリ (semanticsか?) とかも。
 最近デコーディングが気になる。
 でも基本なんでもこい。
 好奇心は悪食。

好きな作家(敬称略)
 川上弘美
 小林秀雄
 津原泰水
 森茉莉
 レイ・ブラッドベリ
 イタロ・カルヴィーノ
 グレッグ・イーガン
 シオドア・スタージョン
バーコード
ブログ内検索
カウンター
フリーエリア
PR
<< Back  | HOME |   Next >>
Copyright ©  -- めもめも ...〆(。_。) --  All Rights Reserved
Designed by CriCri / Material by もずねこ
忍者ブログ  / Powered by [PR]