关于MATLAB

MATLAB是一个强大的工具,对于心理学系的学生来说,不仅可以做科学计算,还可以用来编写实验刺激程序。作为一个没有编程基础的新手学习MATLAB,需要从何如手并注意哪些问题呢,SPM maillist上面有人在讨论这个问题。我在这里总结一下:

首先是面向过程的编程方法 (procedural programming)。虽然MATLAB也支持面向对象的编程,但对于进行科学计算或者编写实验刺激程序来说,需要用到的都是面向过程的编程。过程控制的一些基本函数与方法,比如选择、循环等是编程中最基本的元素。

其次是要养成良好的编程习惯 (good coding habits)。就我个人的知识而言,就是要写好注释,过程控制 (比如循环)内的内容要缩进等等。这对日后再修改程序以及别人理解你的程序都有帮助。不要以为自己写的程序自己就一定能看明白,过一个月之后再看自己写的程序基本上什么都看不懂了。因此,写好注释,严格按照格式来些语句,是非常必要的。

另外一点是要学会debug。对初学编程的人来说,debug是一个非常困难的事情。其实debug的过程和做研究类似,主要的逻辑就是假设检验。先根据错误猜测问题可能出在哪,然后设法传出这一中间步骤的参数,或者先删除某一句话,看看结果有什么变化。通过这样的方法就可以一步一步找到问题出现的关键语句,进而进行修改。如果程序很长,那么debug可能也需要很长的过程。这会让初学者发狂,但其实这也是编程中最有意思的一个过程。

最后一点是我补充的,就是要学会使用帮助。课本上讲的命令是有限的。但是要完成自己的想法,通常还要去搜索更多更适合的新函数,这时候查找和搜索帮助文件是非常有帮助的。另外,psychtoolbox提供的demos,以及google都是很好的帮助材料。

PS: 一个相当不错的MATLAB课程材料
http://www.poldracklab.org/teaching/psych254

评论

此博客中的热门博文

如何画出漂亮的图

12平均律vs.自然律 频率vs.音高