本文转发自igor应用编程,编辑在原译文基础上有所改动。
每一个从事实验科学研究的人都要选择一款合适的数据处理工具。据我所知,用的最多的应该是Origin(没有调查),也有部分人在用Matlab或者其他的工具,如SigmaPlot,Excel等(在Linux下也有很多人喜欢gnuplot等各种开源工具)。对于刚进实验室的同学,相信很多人都有这样的经历:疯狂百度,各种求问,以寻找一款合适的实验数据分析处理软件(不过好像更多的事实是:导师和同实验室的师兄师姐已经决定了你用什么软件,我就是这样的经历)。
今天,我们就对目前主流的数据处理分析软件做一个简单对比,目的是告诉读者,为什么要选择Igor。对比的软件我主要选择了Igor,Origin,Matlab,为了使对比显得更加丰满,我又把Excel拉了进来,凑成4个(因为我认为从专业的角度来说,Excel并不能算作科学数据处理软件,其他的限于个人水平,无法涉及)。
除了最基本的绘图和数据分析处理功能之外,Igor最突出的特色是“完全可编程的”,它通过提供大量的函数和命令来完成数据处理。其菜单系统及大量的对话框根本上也是对这些函数和命令行的使用。IGOR Pro提供了极其方便易用的编程环境,让使用者很自然地将编程当成数据处理的一部分,与正常的数据处理操作浑然天成。编程的方便性得益于其完整而系统的语法环境,一方面这套语法环境高度自洽,不需要引进任何外部支持,原生支持脚本级别、编译级别的程序设计,并提供了很多普通编程语言才有的高级编程技术,如预编译指令、文件包含、条件编译、名称空间等,编译器支持的功能广阔,如字符串处理功能的完整支持、结构体变量、函数指针、对所在平台系统资源的自由访问、线程安全函数设计及多线程编程等,这使得仅仅使用IGOR,不借助任何外部专门的编程工具,就能够实现各种复杂的功能;另一方面,这套语法环境又显著区别于普通的程序设计语言,它将前者的复杂性做了包装,针对数据处理程序的设计做了大大的简化,如变量仅包括数值型和字符串性两类变量(当然也可以更具的制定变量类型,这会提高效率,但一般这样就够了),没有普通编程语言“强类型数据”所带来的复杂性,所有的内置函数和命令(包括用户自定义函数)无需声明即可自由使用,提供极为通用的方式自由访问Igor的数据对象如wave、变量、窗口等。为了方便程序的开发,Igor提供了相当方便的在线帮助系统,随时查询函数及命令的使用并能够直接插入代码处;几乎所有的对话框操作都能转化为对应的命令行并醒目显示,这些命令行都可以直接作为程序的代码。尽管如此,Igor还是提供了扩展接口,熟练和有需要的人员可以利用C++等编程工具任意扩展其功能。这种可编程特性使得Igor非常适合用于处理复杂且体积较为庞大的实验数据、需要大批量重复的操作、在多变量中任意调整某变量随时观察数据变化、编写某一专门类型的数据处理工具等场合。
图1:Igor pro是非常方便的可编程数据处理软件
虽然利用编程来处理数据是Igor设计的“价值取向”,但这并不是说不写程序就不能进行数据处理。Igor同样有简单易用的菜单和窗口系统,通过菜单及相应的窗口,可以完成诸如绘图、数据分析及拟合、图片输出等日常需要的数据处理操作,这并不需要写一行代码。达到这个使用层次通常只需要不到一个小时(假设你有一些数据处理的基本意识和一些软件的使用经验)
Origin是和IGOR Pro最为相似的软件,目标定位也相同:用于实验数据分析处理。但是我觉得Origin的设计理念和Igor迥异,这首先体现在界面上:Origin有菜单,工具条按钮,快捷工具按钮,文件区,数据区等,符合Windows下标准IDE程序的风格,而Igor除了菜单之外,其他的都不是必须的(甚至如果你需要,菜单也可以去掉)。其次,Origin在最初设计时并没有把通过编程来数据处理作为原生功能考虑进去,当然Origin马上意识到了这一点,现在的版本已经支持程序设计了,但是与Igor原生支持程序设计相比,并不是很方便。由于符合Windows程序的风格,Origin程序的上手较为容易,学习曲线较为平缓。一般认为,当数据个性化要求较小,编程要求较小,用Origin是合适的,如果数据量很大,处理过程复杂,需要编写程序成批处理大量数据,则Igor是首选。
图2:Origin界面十分简洁易操作
Matlab是顶级的数学软件,界面简洁,功能强大,几乎无所不能。但Matlab的长处在数值计算、仿真等领域,而不是实验数据处理及科学绘图(有人反映绘图响应较慢,图的修改较为麻烦,但Matlab的3D绘图能力是杠杠的)。此外,个人感觉Matlab的设计初衷也不完全是用来分析实验数据的,诸如实验数据的管理、保存、恢复等并不如Igor方便直观,因此如若不是在数据处理中需要大量的模拟、计算,还是用Igor为好。
图3:Matlab具有强大的绘图能力
Excel是微软OFFICE办公软件套件的一个组件,俗称电子表格,用来处理电子表格型数据。Excel更适合于财会、统计或者数据处理分析不是太复杂的应用领域。用于实验数据处理,简单的实验数据,如大学物理实验中测得的数据还可以,如用来处理专门的科学研究实验数据则显得灵活性不够,功能也稍显欠缺,不够专业。
图4:用Excel作图?还是呵呵吧
比较到这里,想发言的人肯定很多,别着急,先听我说。这里所做的对比,其实正如Windows与Linux之争,Gnome与Kde之争,Vim与Emacs之争(了解Linux的人肯定知道这是怎么回事),既然存在争论,说明每一种工具都有其非常优秀的特色,同时也聚集了大批不同的忠实的粉丝和使用者,其中不乏骨灰级的高手。因此争论不是为了证明对错,比较也不是为了说明某个工具就是没用的。工具是要人来使用,所谓运用之妙,在乎一心,对于高手,落叶枯枝皆可作为杀人利器,固假剑乎。。。(扯远了,打住)。这里我只是想说,如果你还在寻找合适的数据处理工具,那么我向你推荐Igor,绝对没错,它能满足你的全部需求。如果你已经是使用Origin、Matlab或者其他数据处理软件的高手,那么你可以尝试使用Igor,它会让你耳目一新。
来源:igor应用编程
编辑:Lixy
近期热门文章Top10
↓ 点击标题即可查看 ↓
1. 微信红包先抢后抢差距有多大?大数据分析给你答案!
2. 一张通往数学世界的地图
3. EVA爆强核武终实现!中国团队首合成全氮阴离子盐
4. 记住这些关键时刻能救命! (上) | 线上科学日
5. 是物理使得人体的衰老不可避免,而不是生物
6. 博士生的心灵砒霜,男博士看了会沉默,女博士看了会流泪,读到哪条你哭了?
7. 科学撩妹大法!十个小实验助你轻松表达爱意 | 线上科学日
8. 中科院老司机在情人节教你拆CP!
9. 我们中学地理学的知识,竟然全是出自他一个人!
10. 为什么闪电不走直线?| No.44
点此查看以往全部热门文章