忍者ブログ
おかげさまでspamコメントが増えてきましたので、一応コメントを承認制にしました。基本的には承認します。
[12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22]
×

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

本家(FCdonders)のtutorialは,VSM Medtecqから出ている,CTF Omega systemというものを対象としておりまして,neuromagを使っているものとしてはちょっとずれがあって,かつあまりmatlabに詳しくないと,「そこを説明してくれよ!」というところが無かったりして,大変苦労しますよね.と勝手に共感してしまいましたが,別にそんなことが無ければ申し訳ありません.

まず,環境ですが,matlab2007b(7.5) on Windows XPでは問題なく動いているようなのですが,何故かmatlab2009a on Mac OSX Leopard, matlab2007(a?b?) on Linuxでは挙動がおかしい部分があるようです.原因はわかりません….matlabに詳しい友達が欲しいですね.特に,read_dataで異常が発生しているようです.

幸いにもmatlab2007b on Windows XPユーザでありましたら,FieldTripの他に,MNEソフトウェアのダウンロードが必要です.以前の記事でも書きましたが,MNE softwareのページからどうぞ(メールアドレスの登録が必要です).matlabtoolboxのみのダウンロードで大丈夫でしょう.環境変数にMNE_ROOTを設定し,mne_setup_toolbox.mを(既にパスが通っている)Fieldtrip toolbox等にコピーしてから実行せよ,とありますが,これ,どうも単にパスを通すだけのmファイルのようなので,自分でパスを通せば問題なく使えそうです(今のところ).環境変数にMNE_ROOTを設定しろ,というからしたんですが,どうもあまりうまくない模様.なぜだろう.

とりあえずDefinetrialまではできてるんで,そこまでご説明します.先日書いたばっかりなのでアレですが,記事が長いのでかいつまみます.まず

evt = read_event ('filename.fif');
とします.ここで選択するfifファイルは,rawデータのほうですね.それで,ワークスペースからevt変数の中身をみてみると,1×1stringというセルが並んでいるはずなので,適当なところをクリックします.そうすると,type:'STI 014'(多分これは変わらないはず) value:1 (トリガ番号)等と書かれているはずなので,それを以下に書きます.注意点としては,valueで示されるトリガ番号は,10進法で解釈されるようですので,00000001, 00000010, 00000100,等のトリガを出力している場合は,1,2,4となりますね.
cfg = []; %なんか入ってると,そのデータで解釈されるので,一回年のためcfgを空にしておきますよ,ということ
cfg.dataset = 'filename.fif'; %filenameは保存した名前(-.fif)ですね.シングルクオーテーションをお忘れなく.また,rawデータを使います.
cfg.trialdef.eventtype = 'STI 014'; %CTFだとbackpanel triggerという名前のようですが,neuromagは多分STI 014です.半角スペースやシングルクオーテーションをお忘れなく!
cfg.trialdef.eventvalue = 1; %とりあえず今分析をしたい条件に与えていたトリガ番号を書きます.
cfg.trialdef.prestim = 1; %なくても動きます.イベントの定義区間を,トリガの[数字]秒前にします.
cfg.trialdef.prestim = 1; %なくても(略)[数字]秒後にします.
で大丈夫のはずです.ここまで設定すれば,あとはいよいよ,
cfg = definetrial(cfg);
で,matlabがちゃんと動くはずです.あとは,基本的にはcfgそのものを弄るだけっぽい(もともとfiffファイルに入っていたデータを確認する必要は多分あんまりない?)ので,本家のチュートリアルに従えばできそうだと思います.大変ですけどがんばりましょう!渡辺も頑張ります.

拍手[0回]

PR

年末なので加筆修正しました(一年間の検索フレーズをみてたら,わりとこの語句が上位にきていたので).もとは,TeX限定の話でした(タイトルが,texinst757 内部コマンドまたは外部コマンド,操作可能なプログラムまたはバッチ ファイルとして認識されていません だった.このエラーメッセージの対策です,基本的には)が,このメッセージそのものはTeXに限ったことではありませんので,一般論を書きますが,一般論にするとちょっと読者は減るかもしれませんね(もっといい,歴史のある解説ページがあるので).

まず,前提として,多くの(全ての?)コマンドラインインタプリタ(wikipedia;コマンドラインインタプリタ参照.ようするに,windowsのcmd.exeとか,UNIX(におけるシェル,という言い方が正しいんですかね)とか,まあmatlabもそうなんでしょうね,みたいなアレですよ,あれ.)では,現在「いる」(作業をしている)ディレクトリ(フォルダの別名だと思ってもらえれば良いと思います)の中にあるファイルしか(基本的には)探せない/扱えないのです.従って,たとえばダウンロードしてきたファイル.(なんでもいいんですが上の例だとtexinst757.zip),そのファイルが現在いるディレクトリに存在しなくてはならないわけですね.

具体的に言えば,現在作業をしているディレクトリが,C:¥usr¥loc¥binで,ダウンロードしたファイルがあるディレクトリがC:¥tempだとすると,C;¥usr¥loc¥binに自分がいるうちは,C:¥tempにあるファイルを使うことができない,ということですね(ディレクトリの記載法には色々な流儀がありますが,windowsは確かこんな感じですよね?¥はバックスラッシュ(\)かも).

余談ながら一般的な現在いるディレクトリを表示するコマンドは,

pwd (print working directoryに由来するそうです)
です.また,ディレクトリを移動するコマンドは,
cd ディレクトリ名 (たとえば, cd C:¥usr¥loc¥bin とかね)
です.

さて,はじめの

'texinst757'は内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません
に戻りますと,これは要するに、カレントディレクトリ(ようは今「いる」ディレクトリ)に「texinst757.zip」ファイルがないので、「texinst757」なんてここにはないですよ、というエラーメッセージです(たぶんね)

回避方法のひとつは、身もフタもないですが,カレントディレクトリにtexinst757.zipファイルを置けばいいんですね.別にC:¥usr¥loc¥binで展開しても(そのディレクトリ内にあっても)困らないならば,

copy texinst757を置いたディレクトリ¥texinst757 今のディレクトリ
(コマンドプロンプト以外の多くのインタプリタだと,cp 元ファイル(フルパスで) 対象のディレクトリ になりましょうか)
とか.あるいは,GUIの方で,そのファイルをコピー&ペーストしたっていいんです.

もうひとつは、フルパス(絶対パス)でtexinst757を呼び出すこと

たとえば、c:\tmp\local\bin\texinst757.zipとか
ですね.ディレクトリ階層の一番上からファイルまでの道筋(tmpフォルダを開いて,localフォルダを開いて,binフォルダを開いた中にtexinst757.zipがあるよ!という)をフルパス(絶対パス)と言う訳ですね,蛇足ながら.これがまあ確実と言えば確実でしょうか

あるいは、今texinst757.zipというファイルがあるディレクトリに「パスを通す」ことです。これが,環境によってやり方が全然違うんで,困っちゃうところですが,迷走:TeXを使えるようになろう(3)も参照してください.

Windowsのコマンドプロンプトだと、

Path = 通したいパス名;%path%
ここでは,path = C:¥tmp¥local¥bin¥; %path% かな.
とするとパスが通るようです(道案内ができる)。ただ,バージョンによって違ったりするので,"windows path"なんかで検索して確かめてみてください.

また,しょっちゅう利用するファイルの場合(texinst757なんかはインストールの時しか使わないんだから,いらない用な気もしますが)毎回毎回パスを通すのが面倒ですので、Autoexec.batというファイルに、事前にパスを書き込んでおくこともできます。再起動しないと有効になりませんので、要注意です。

ちなみに、Matlabだと、addpathというコマンドがあり,

addpath ('C:\personal\matlab')
等とするとそのディレクトリにパスが通ります(以前,addpath =と書いておりましたが,こうするとaddpathという変数名にパスが代入されてしまうだけなので,ダメです.すいません.. .また,少なくとも2007bでは,パスを通したいファイルのあるディレクトリに移動して,ファイル名がワークスペースかどっかに出ると思うんですが,それを右クリックで,フォルダにパスを通す,とか,フォルダとサブフォルダにパスを通す,ということも指摘できて便利だったりします.ちなみに,「フォルダとサブフォルダにパスを通す」のほうをコマンドで実現するには,
addpath(genpath('トップフォルダのフルパス'))
たとえば,addpath(genpath('D:¥usr¥mne')とか
とすると,D:¥usr¥mne¥toolboxなどといった指定したトップフォルダ(ここでは¥usr¥mne)下にあるフォルダにもパスが通ります.genpathそのものは,
genpath directory
でそのディレクトリ下のディレクトリを全て示すもので,
p = genpath('directory')
等とすると,pにdirectoryのサブディレクトリが代入されます,ということらしいですね.あと,あんまりやったことはないのですが,startup.mファイルを起動時に読み込むようですので,そのファイルに上記のコマンドラインを挿入しておけば,いちいちaddpathを指定しなくて良いでしょう.

MacOSXの場合がまだピンと来てないのですが,aliasを作成するという手があります.大雑把にいって,aliasを作るというのは,自分で使える新しいコマンドを作る,ということになります.従って,

alias optseq2 ="/users/watanabehayato/downloads/optseq2"のように,
alias 新しくつくりたいコマンド名="実行したいファイルまでのフルパス"
とすれば,パスを通したのと同様になりますよね?(不安)aliasを解除するときは,
unalias optseq2
とすれば無くなりますのでご安心ください.

大変長くなりました.なお,パスが通ってないファイル名を指定したときのMacOSXのメッセージは,

command not found
または,No such file or directory
とかです.簡にして明.

拍手[5回]

とりあえずデータは読み込めるようになったので,すが,Tutorialに使われているデータはCTF Omega Systemで取られたデータのようで(これで検索された方がいましたが,平謝りする他ございません),Neuromagのデータはそのまんま乗っかるわけにはいかなそうなので,きちんとmatlab関数が何してるのか,ということを読んでいきたいと思います.

というわけで,tutorialのintroductionの,The Fieldtrip toolboxの部分をざっと見ると,まずDEFINETRIAL (trialの定義)をして,REJECTARTIFACT (アーティファクトの除去)をしたあとで,PREPROCESSING (前処理)をする,以降色々な分析をしますよ,ということになっています.(DIPOLESTIMULATIONは,また別のフローのよう)

というわけで,まずはDEFINETRIALをみてみます.DEFINETRIALはtrialをdefineするもので(そのままですね),trialというのは,PREPROCESSINGで読み出されるデータの切片である,ということですね.このTrialは,連続データのうちの開始(t = 0 point, 普通はトリガのポイント)と終端によって定義される,ということでここまではわかりますね.昨日書いた,read_headerという関数は,fifファイル中のヘッダを読んでいる,ということになります.たぶん.definetrialのヘルプは,matlab中で,

help definetrial
としても良いですが,ここにヘルプ全文があります.

さて,Fieldtripで用いられるデータというのは,configuration(構造体)であり,Fieldtrip中では"cfg"という文字列で表されています.

cfg.xxx = xxx;
cfg.yyy = yyy;
というように,ドット以下に文字列を加えると,cfgという変数の中に,xxx, yyyというサブ変数ができます.やってみたらわかると思いますが….スクリーンショットで見せられればわかりやすそうですね.またいずれ.

definetrialに最低限必要なcfgの構造は,以下のようになります.

cfg = [];
cfg.dataset = 'filename.fif'

cfg.trialdef.eventtype = 'eventtypestring'
cfg.trialdef.eventvalue = event(trigger)value;
ここで,cfg.datasetに入れる'filename.fif'というのはそのまま,rawデータが保存されているfiff fileになります.cfg.trialdef.eventtype/valueにいれるべき内容は,次のようにすると読み出すことが可能です.
evt = read_event('filename.fif');
evtの部分は好きな名前で結構なんですが,ようするにread_eventの結果がこの変数に入るということになりますね(まあ,matlabを使ったことがあればわかると思いますが…しつこくなるので,以下わざわざ書きません).evt fileの中を見ていくと,トリガ数*1列のイベントデータが出ていることがわかると思います.それぞれのイベントデータをみると,たとえば,type :'STI 014'とか,value:1というようなことが書いてあるものと思われます.*わかんないですが,evt.type(1,1), evt.value(1,1)とかすれば,ans = 'STI 014', ans = 1 とか出ると思います.ダメかな?

そこで,

cfg.trialdef.eventtype = 'STI 014';
cfg.trialdef.eventvalue = 1;
と入力します.加えて,
cfg.trialdef.prestim = 1;
cfg.trialdef.poststim = 1;
等とすれば,定義付けの範囲を,prestim(秒)〜poststim(秒)に限局できるようです.ここまでの構造体(cfg)情報が入力し終われば,あとは,
cfg = definetrial(cfg);
とすることで,trl情報がcfgに付加されます.これを用いて,後のpreprocessとかができるようですね.

拍手[0回]

遊戯王のルール

(おおざっぱにいって)40枚のカードから手札を何枚か引いて,そこからモンスターを出しあって戦う.モンスターには攻撃力と防御力があり,この数字は「攻撃/防御表示」の時のパラメータに対応する.強力なモンスターを場に出すには,なんらかの制約が必要である.モンスターには属性や種族があって,特定の種族に対して強いモンスターとか,特定の属性にだけ使えるアイテムとかがある.それ自体は戦闘できないが,モンスターのステータス等に対して影響を及ぼす補助カードのようなものがある.プレイヤー自信に体力が設定されており,自分がモンスターを出していないとき(あるいは自分のモンスターが負けたとき)に,相手のモンスターから攻撃を受ける,あるいは補助カードによる効果でその体力が減少し,0になると負ける.

攻撃,防御の取り扱いがちょっとややこしい.カードを引く→モンスターを並べる(「攻撃表示でセットして攻撃しない」「攻撃表示でセットして攻撃する」「防御表示でセットする」の3択;攻撃表示というのは,つまり「表向きに置く」ということで,「防御表示でセットする」というのは,「裏向きに置く」ということか)→攻撃表示に対して攻撃:双方の攻撃力で判定,攻撃力が高い方が勝ち.負けた方が差分のダメージを受ける.→防御表示に対して攻撃:攻撃力と防御力を比較して,高い方が勝ち.攻撃側が負けるとプレイヤーがダメージを受けるが,防御側は負けてもモンスターが墓地にいくだけでプレイヤーにデメリットはない.

カードを引く,モンスターを並べる,攻撃する,ターンを終える,というそれぞれの時期に,それぞれ使える補助カードは異なったりするみたい.

このまま採用するとややこしいなー

拍手[0回]

やっぱり一位はMacBookかなー!すっかり林檎信者になってしまいました.布教活動をしていると,Macは使いこなせる気がしません,みたいなことを時々言われますが,個人的には,windowsの方が使いこなせる気がしないです.今になってみれば.

多分,windowsを使っても,各種フリーソフトを使えば,spotlight(全ファイルから指定内容を検索してくれる)っぽい検索もできるだろうし,spaces(仮想ディスプレイを設定できて,キーボード操作のみで切り替えられる.渡辺は12個のディスプレイを使っています!デュアルディスプレイなんてメじゃないっすね)のようなディスプレイの使い方もできるんだろうと思いますが,如何せんそこまでの設定が面倒というか.macはこのあたり,快適な環境がわりと最初から用意されている気がするように思います.

特に英文とかの文章を書くときに力を発揮する気がします.spotlightで全文検索が可能なので,(ちなみに,ctrl+spaceで開きますので,キーボードだけで可能!)PDFファイルを蓄積しておけば文例集のような使い方もできますし,文法書を一冊(いずれ書くかもしれませんが,簡単にいうと紙媒体を全文検索可能な(!!)PDF化するスキャナ)ScanSnapで取り込んでしまえば,そこに乗っている文例を参考にすることもできます.また,はじめから辞書(和英,英和,英英)も入っていて,単語検索ならそれだけでもほぼ対応できます.更に,良くわからない英文(単語)をSafariにドラッグ&ドロップすれば,その文や単語で検索できるんです.すげー助かる.

あとはmailに日時が書いてあると,そこがクリックできるようになっていて,iCalに予定が書き込まれるとか,アプリ間の連動が非常に容易ですし,わりと北海道では札幌に限られますがapple storeのジーニアスがほんとにジーニアスなところとかが好きです(MacBookが不調でも,”いやー,apple storeいかなきゃなー"という声が若干楽しそう,みたいな.多分なんとか治るだろう,という安心(信頼)と,apple製品を見に行けるのが嬉しい,と書くとなんかどマニアに見えますが,そうでもないです.ほんとに.)が,このあたりにしておきましょう.ほんとは,このへんの便利なことをしっかりまとめると優秀な信者になれるのですが….なかなかね.時間がなくてね.あと一点だけ付け加えると,osXからはUNIXベースになっているのが凄い人にとっては凄いらしいです.笑勉強中…

欠点らしい欠点といえば,多くのソフトウェア(とくにフリーのもの)はwindowsのみ対応だという点で,これはちょっとね.E-Primeも使えないしね.そりゃあ,macにwindowsを入れる事できるけど,欠点は欠点です.あと,学会なんかで持ち歩くには若干でかい,重い.ホテルで使う分にはいいんだけど….ハンディサイズのmacPCがあればなーとは思います.現在はほぼiPhoneで代用が効くのですが,ま,それはそれとしてやっぱサイズは選べれば良いですよね.13インチって結構でかいです.

まあ,そんなわけで,macbook,また安くなりましたし,大学院生なら多分買って後悔はしないと思いますね!ただ,MMOとかは軒並みできないと思いますが,それはむしろ長所です!笑.年末まで気まぐれにこのテーマで書きます.

拍手[0回]



忍者ブログ [PR]
カレンダー
08 2024/09 10
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
メールはこちらから
プロフィール
HN:
渡辺隼人
性別:
男性
ブログ内検索
カウンター
コガネモチ