Matlab 是什么鬼唧取?
Matlab 是Matrix Laboratory(矩陣實(shí)驗(yàn)室)的縮寫,顧名思義划提,它的工作與矩陣有關(guān)枫弟。Matlab 最早是由美國(guó)新墨西哥大學(xué)的Cleve Moler教授開發(fā)出來的,主要用于數(shù)學(xué)計(jì)算與教學(xué)腔剂,最初版本只能做一些簡(jiǎn)單的矩陣運(yùn)算媒区。
這樣看來它就是一個(gè)功能超強(qiáng)的計(jì)算器,好像與咱們心理學(xué)專業(yè)沒什么關(guān)系掸犬。別急袜漩,請(qǐng)繼續(xù)往下看。
后來湾碎,Cleve Moler 與另外兩名合作者一起創(chuàng)辦了MathWorks公司宙攻,其主營(yíng)業(yè)務(wù)就是 matlab 產(chǎn)品。經(jīng)過多年的版本迭代更新介褥,Matlab 不僅完善了它的數(shù)學(xué)功能座掘,更重要的是還可以在它上面寫程序。
Matlab 還很靈活柔滔,它不僅可以跑它自己的腳本代碼溢陪,還可以調(diào)用其它語言寫的程序(例如,python, C, C++ 等)睛廊。眾所周知形真,寫程序的目的是操控電腦,讓它幫我們干活超全,所以Matlab成為一個(gè)可編程的平臺(tái)以后咆霜,就變得幾乎無所不能了。
由于 Matlab 自帶超強(qiáng)科學(xué)計(jì)算 buff嘶朱,因此蛾坯,它在全世界的工程與科研領(lǐng)域應(yīng)用廣泛。
Matlab 還有一個(gè)很重要的特性就是它有很多的擴(kuò)展包疏遏,這個(gè)東西在 Matlab 里面被稱作工具箱脉课。它節(jié)省了大量的程序開發(fā)時(shí)間,也讓 Matlab
變得易用财异、友好下翎。這里我要解釋下是什么原因。
假如說宝当,我要讓電腦在屏幕上顯示一句話 Hello World!
, 如果沒有現(xiàn)成的“命令”视事,我可能需要專門寫一段代碼來完成這個(gè)工作。后來庆揩,我發(fā)現(xiàn)經(jīng)常做類似的工作俐东,如果我每次都要重復(fù)寫這種代碼,顯然開發(fā)效率是非常低的订晌。
那如果我能寫一段代碼把它包裝成一個(gè)“命令”虏辫,以后用這個(gè)“命令”來完成相應(yīng)的工作,就可以省去大量的重復(fù)勞動(dòng)锈拨。所以砌庄,幾乎在每個(gè)程序設(shè)計(jì)語言中,都能看到類似顯示一句話的“命令”。
在 Matlab 中娄昆,顯示Hello World!
的代碼是這樣的:disp 'Hello World!'
佩微。 類似的,在實(shí)際工作中萌焰,能看到大量的重復(fù)工作哺眯,很多開發(fā)者就把這些重復(fù)工作做成了可供別人直接使用的“命令包”,它可以看作是很多個(gè)“命令”的集合扒俯。這件事情在程序猿界被稱為“造輪子”奶卓。
Matlab 針對(duì)不同行業(yè)工作者,開發(fā)了不同的工具箱撼玄,這些工具箱有 Matlab 官方開發(fā)的夺姑,也有第三方團(tuán)隊(duì)提供的。
這樣一來掌猛,程序開發(fā)的門檻大大降低盏浙。寫程序就像搭積木一樣,用不同功能的積木模塊拼搭成我們想要的東西留潦。
非常幸運(yùn)的是只盹,在 Matlab 上,有一個(gè)專門針對(duì)心理學(xué)專業(yè)的工具箱——Psychtoolbox(簡(jiǎn)稱PTB)兔院。
PTB簡(jiǎn)介
PTB 的功能是在 Matlab 與計(jì)算機(jī)硬件中間提供一個(gè)接口殖卑,讓 Matlab 可以直接操縱計(jì)算機(jī)硬件。這樣坊萝,我們就可以自由地要求計(jì)算機(jī)輸出圖像孵稽、文字或聲音,精確計(jì)時(shí)并獲取被試的反應(yīng)十偶。
有了 PTB 工具箱以后菩鲜,我們可以在 Matlab 上完成幾乎所有的實(shí)驗(yàn)工作。
PTB 的社區(qū)支持做得比較好惦积,基本上有什么問題都可以在其官方論壇上獲得幫助接校。下圖是它的年發(fā)帖量(數(shù)據(jù)截止到2016年6月):
[圖片上傳失敗...(image-a6fdfb-1526456142272)]
PTB 在科研論文中引用量也比較大,官方做了一個(gè)數(shù)據(jù)統(tǒng)計(jì)(數(shù)據(jù)截止到2016年6月)狮崩。根據(jù) Google Scholar 的數(shù)據(jù)蛛勉,年引用量如下圖:
[圖片上傳失敗...(image-624ba3-1526456142272)]
根據(jù) ISI Web of Science 上的數(shù)據(jù),年引用量如下圖:
[圖片上傳失敗...(image-795e7d-1526456142272)]
為什么要使用 Matlab + PTB?
可能有小伙伴有疑問睦柴,Matlab 與 PTB 能做的事情诽凌,別的程序語言也能做,更何況我們還有像 E-prime 這樣簡(jiǎn)單易用的工具坦敌。
原因當(dāng)然是它bigger高啊侣诵,可以裝 big 啊痢法。
說正經(jīng)的,我們還是從費(fèi)用杜顺、易用性财搁、靈活性、編碼要求等方面來比較一下不同的工具哑舒。
E-prime | DMDX | Inquist | Presentation | Matlab + PTB | |
---|---|---|---|---|---|
費(fèi)用 | 高 | 免費(fèi) | 高 | 中等 | 中等 |
易用性 | 容易 | 中等 | 中等 | 中等 | 中等 |
靈活性 | 低 | 低 | 中等 | 較高 | 高 |
編碼要求 | 無 | 較少 | 中等 | 中等 | 中等 |
P.S.
E-prime 的售價(jià)大約是 995 刀妇拯,升級(jí)需要 595 刀幻馁,好處是各高校實(shí)驗(yàn)室基本有配備洗鸵;
Inquist 的價(jià)格大約是 450 刀,升級(jí)需要另外掏錢仗嗦,大約 250 刀膘滨;
Presentation 是年授權(quán),大約 99 刀稀拐;
PTB 工具箱本身免費(fèi)火邓, Matlab 大約 3000 人民幣,學(xué)生版大約 99 刀德撬,但是中國(guó)大陸地區(qū)沒有開放學(xué)生版授權(quán)铲咨。
最后,近幾年在 python 環(huán)境下出現(xiàn)了一個(gè)叫 PsychoPy的工具蜓洪,既可以像 E-prime 那樣圖形化編程纤勒,也可以像 PTB 一樣腳本編程。這東西完全免費(fèi)隆檀,但只支持 Python 2摇天,不支持 Python 3,也很值得關(guān)注恐仑。