新書推薦:
《
大家小书 译馆 骑士:历史与文化
》
售價:NT$
255.0
《
没有一种人生是完美的:百岁老人季羡林的人生智慧(读完季羡林,我再也不内耗了)
》
售價:NT$
257.0
《
日耳曼通识译丛:复原力:心理抗逆力
》
售價:NT$
155.0
《
海外中国研究·未竟之业:近代中国的言行表率
》
售價:NT$
614.0
《
我们为何建造(城市与生态文明丛书)
》
售價:NT$
406.0
《
算法经济 : 商业逻辑与人类生活的智能演进(生动呈现AI与算法的创新应用与商业价值)
》
售價:NT$
359.0
《
家书中的百年史
》
售價:NT$
359.0
《
偏爱月亮
》
售價:NT$
207.0
|
編輯推薦: |
全书共分为7章和1个附录,第1章介绍Igor Pro的基本对象和基本使用,突出利用命令行处理数据的使用特点。第2章以曲线、二维数据和三维数据为例,介绍了图表的绘制和设置中涉及的概念和方法。第3章介绍数据拟合的技巧和方法,包括简单的调用菜单拟合到复杂的自定义函数拟合,并详细讨论了Igor Pro的一些高级拟合技巧。第4章介绍插值、傅里叶变换、方程求解等数据处理中可能用到的操作。第5章介绍程序设计的基本概念、Igor Pro语法环境以及命令行程序的设计。第6章介绍窗口界面程序的设计方法以及窗口程序设计中可能用到的各种技巧。第7章介绍一些高级的程序设计方法,如多线程、钩子函数、计算机硬件操作等复杂用法。附录介绍本书所用术语、快捷键。具有参考价值!
|
內容簡介: |
本书介绍Igor Pro的基本使用技巧和数据分析处理的一般方法,全面涵盖Igor Pro基本操作、图表绘制、数据分析拟合和程序设计等方面内容。在内容设计上以实用性为目的,突出图表绘制、数据拟合和程序设计等数据处理中需要的内容模块。书中配有大量的示例代码,以便读者在学习的过程中参考和借鉴。
全书共分为7章和1个附录,第1章介绍Igor Pro的基本对象和基本使用,突出利用命令行处理数据的使用特点。第2章以曲线、二维数据和三维数据为例,介绍了图表的绘制和设置中涉及的概念和方法。第3章介绍数据拟合的技巧和方法,包括简单的调用菜单拟合到复杂的自定义函数拟合,并详细讨论了Igor Pro的一些高级拟合技巧。第4章介绍插值、傅里叶变换、方程求解等数据处理中可能用到的操作。第5章介绍程序设计的基本概念、Igor Pro语法环境以及命令行程序的设计。第6章介绍窗口界面程序的设计方法以及窗口程序设计中可能用到的各种技巧。第7章介绍一些高级的程序设计方法,如多线程、钩子函数、计算机硬件操作等复杂用法。附录介绍本书所用术语、快捷键。
本书可作为高等院校、科研机构等相关单位从事实验教学或者实验科学研究的教师、工程师的参考书籍,也可作为高年级本科生和研究生实验数据分析和处理的参考书籍。
|
關於作者: |
贾小文,2006年本科毕业于南开大学应用物理专业,获理学学士学位,2011年毕业于中国科学院物理研究所高温超导专业,获理学博士学位。熟练掌握ARPES实验原理及实验数据分析技术,精通Igor Pro使用,具有十七年Igor Pro的使用经验,先后开发了EELS和ARPES数据处理包,被物理研究所、北京大学等一些研究单位采用,著有《Igor Pro实用教程》《Igor Pro程序设计实战》。熟练掌握计算机程序设计方法,曾独立开发驾驶员训练考核系统(C )和大学基础实验在线考试系统(C#)。目前担任陆军军事交通学院基础实验中心主任、副教授职务,主要从事大学物理实验的教学和实验数据处理研究方面的工作。
|
目錄:
|
第1章Igor Pro基本介绍
1.1Igor概述
1.1.1特色定位
1.1.2安装和使用
1.1.3基本界面
1.1.4系统菜单
1.1.5数据浏览器
1.1.6数据表格
1.1.7命令行窗口
1.2Igor中的基本对象
1.2.1wave
1.2.2图
1.2.3表格
1.2.4页面布局
1.2.5变量
1.2.6数据文件夹
1.2.7记事本
1.2.8程序面板
1.2.9三维图
1.2.10程序
1.2.11命令和函数
第2章图表绘制
2.1曲线
2.1.1绘制曲线
2.1.2添加新曲线
2.2图表的设置和美化
2.2.1设置绘图区域
2.2.2设置外观
2.2.3设置坐标轴
2.2.4设置图注
2.2.5向曲线添加自定义形状
2.2.6样式脚本
2.3类别图
2.3.1类别图的绘制和设置
2.3.2类别图的设置
2.4二维wave数据的绘制
2.4.1Image的绘制
2.4.2Image的设置
2.4.3Contour的绘制
2.4.4Contour的设置
2.4.5Waterfall的绘制
2.4.6Waterfall的设置
2.4.7Surface的绘制
2.4.8Surface的设置
2.5三维wave的绘制
2.5.1三维图形绘制的概念
2.5.2三维图形的绘制
2.6输出图片
第3章数据拟合
3.1拟合概述
3.1.1拟合的基本原理和步骤
3.1.2基本拟合
3.1.3快速拟合及结果查看
3.1.4自定义拟合
3.1.5数据拟合对话框详解
3.2拟合公式模型
3.2.1内置拟合公式
3.2.2普通自定义拟合函数
3.2.3保存自定义拟合函数
3.2.4自定义拟合函数的格式
3.3拟合命令详解
3.3.1拟合命令参数详解
3.3.2常用拟合命令选项
3.3.3限定拟合参数范围
3.4高级拟合技巧
3.4.1隐函数拟合
3.4.2复杂自定义拟合函数
3.4.3all at once拟合
3.4.4使用结构体类型变量参数的拟合函数
3.4.5拟合过程中的特殊变量
3.4.6多峰拟合
3.4.7拟合的几个例子
第4章数据处理
4.1插值
4.1.1基本插值方法
4.1.2插值与均匀数据
4.1.3逆插值
4.1.4曲线平滑
4.2数值计算与统计
4.2.1微分和积分
4.2.2wave统计信息
4.2.3求解数值方程
4.2.4微分方程求解
4.2.5直方图
4.2.6排序
4.3数学变换
4.3.1傅里叶变换
4.3.2傅里叶变换窗
4.3.3希尔伯特变换
4.3.4卷积
4.3.5相关
4.4图像分析
4.4.1Lookup Table方法
4.4.2直方图均衡化
4.5随机数生成
第5章程序设计
5.1程序设计概述
5.1.1程序窗口
5.1.2程序窗口说明
5.1.3编译程序
5.1.4程序代码构成
5.1.5程序类型
5.2基本语法
5.2.1表达式和命名规则
5.2.2变量和常量
5.2.3Structures
5.2.4流程控制语句
5.2.5函数
5.2.6程序子类型
5.2.7参数传递
5.2.8默认参数
5.2.9注释和代码风格
5.3程序设计技术
5.3.1Include指令
5.3.2Pragma参数
5.3.3IndependentModule
5.3.4Execute命令
5.3.5条件编译
5.3.6函数引用
5.3.7访问全局对象
5.3.8wave引用
5.3.9$运算符
5.3.10自动创建变量
5.3.11调试程序
第6章窗口程序设计
6.1窗口程序概述
6.1.1创建一个简单的窗口程序
6.1.2窗口程序构成
6.1.3窗口生成脚本
6.1.4控件命令
6.2窗口控件
6.2.1Button按钮
6.2.2CheckBox复选框
6.2.3SetVariable文本框
6.2.4ListBox列表框
6.2.5PopupMenu下拉列表框
6.2.6Slider滑动条控件
6.2.7ValDisplay数值显示控件
6.2.8TabControl控件
6.2.9CustomControl自定义控件
6.2.10TitleBox和GroupBox控件
6.2.11控件操作
6.2.12获取控件信息
6.2.13控件结构体变量类型应用
6.3窗口设计
6.3.1Pictures详解
6.3.2创建Pictures
6.3.3窗口设计
6.3.4Graph和Panel的区别
6.4菜单
6.4.1菜单概述
6.4.2创建动态菜单
6.4.3系统右键快捷菜单中添加菜单项
6.4.4特殊菜单项
6.4.5创建弹出式菜单
6.4.6菜单项中的特殊字符
第7章高级程序设计
7.1程序中的free对象
7.1.1free wave
7.1.2free data folder
7.2多线程技术
7.2.1简单多线程技术
7.2.2free对象与多线程
7.2.3多线程编程
7.2.4后台任务
7.2.5抢占式多任务
7.2.6定时器和多线程
7.3运行时交互
7.3.1简单的输入数据框
7.3.2利用PauseForUser创建输入对话框
7.3.3程序进度条
7.4钩子函数
7.4.1用户自定义钩子函数
7.4.2窗口钩子函数
7.4.3依赖
7.5数据采集
7.5.1FIFO与Charts
7.5.2串口读写
7.5.3XOP扩展
7.6多媒体
7.6.1播放声音
7.6.2视频播放和创建
7.7错误处理
7.7.1程序错误退出
7.7.2trycatchendtry
7.7.3Igor错误代码和描述
7.8文件读写
7.8.1文件读写函数和命令
7.8.2文件读写示例
7.9初始化技术
7.9.1新建实验文件时初始化
7.9.2打开窗口程序时初始化
7.10其他编程技术
7.10.1计时
7.10.2Cursor编程
7.10.3字符串及正则表达式
附录A本书术语说明
附录BIgor Pro常用快捷键
附录CIgor Pro新版本特性
|
內容試閱:
|
2023年3月9日,Wavemetrics公司正式发布了Igor Pro 9.02 Beta 1版本,这也是该公司在被Sutter Instrument公司收购后正式发布的第一个测试版本。与本书第1版对应的6.37版本相比,新版本引入了很多新的特性,体现在以下几个方面。
(1) 提升程序代码编辑功能,命令行窗口支持语法高亮,并支持自动补齐;
(2) 支持对象长名字命名(255个字符);
(3) 实验文件和程序文件采用UTF8编码,解决非英文操作环境下乱码问题;
(4) 大幅提升3D绘图能力;
(5) 扩充标准图表类型,增加了盒线图、小提琴图(Violin)等标准图表绘制命令;
(6) 数据浏览器做了较大调整,显示信息时更加全面、直观;
(7) 支持HDF5文件读取;
(8) 支持部分Tex功能;
(9) Page Layout功能得到全面提升,数据组织、整理和展示更加方便;
(10) 增加了一些新的命令和函数,整体性能得到全面提升;
(11) 调整和提升了软件界面,与最新版本操作系统和硬件系统更加适配。
新特性特别是在编程方面特性的提升(包括新增的函数和命令)是值得关注的,这些提升进一步强化了Igor Pro基于编程处理和可视化实验数据的功能特色。UTF8编码很好地解决了实验文件在复制和交流过程中出现的乱码问题,3D绘图功能的提升满足了当前科学实验数据处理领域对数据进行3D可视化的使用需求,其他更新则进一步提升了软件的使用体验。本书体现新版本所引入的新的功能特性,帮助读者更好地掌握新版本Igor Pro的使用。
Igor Pro面世至今已经有30多年的历史,很多使用Igor Pro进行数据处理与管理的实验室有大量的程序是基于Igor Pro老版本编写的,这些版本甚至低于6.37版本。因此,Igor Pro在发布新版本时特别关注对老版本的兼容问题,已有的知识和使用经验在新版本环境下大多数是适用的,一般不会发生大的变化,老的程序一般可以在新版本下运行(有时需要简单修改)。因此,本书仍以Igor Pro 6.37为基础,在涉及新版本引入的新特性或者调整的地方,则进行特别说明,以提示读者。通过阅读本书,读者完全可以掌握Igor Pro最新版本的使用方法。
清华大学出版社对本书的再版十分支持,并提供了很多宝贵的意见,在此表示感谢。
贾小文
2024年1月于天津
第1版前言
《Igor Pro实用教程——图表绘制、数据分析与程序设计》终于要和读者见面了。此时,笔者内心非常激动。
这里首先介绍本书创作的缘由。
在笔者就读大学期间,还未听说过Igor Pro。当时,笔者处理数据用的是Turbo C 3.0。由于没有意识到数据处理软件这种工具的存在(比如最基本的Excel),笔者觉得数据处理就是编程。以至于后来,笔者甚至构建了一个雄伟的计划: 利用Turbo C设计一个数据处理软件,基本功能是绘图和最小二乘法,甚至连软件架构都写好了。遗憾的是,因为没有计算机,加之学校的机房上机费太贵,这个计划最终被搁浅了(幸亏如此)。随着升入高年级,实验课结束,这个计划终于被彻底忘记了。不过,这种编程处理数据的思路最终还是让笔者受益匪浅。本书介绍的Igor Pro就是最适合通过编程处理数据的工具。
上研究生时,实验数据处理这个问题再次出现。不过笔者发现不能再继续用Turbo C 3.0了,因为实验室所有的人都在用Igor Pro,所以笔者开始了Igor Pro的学习和使用。学习Igor Pro的经历是值得回顾的。
记得第一次看到这个软件,感觉很茫然。
按照以往的经验,不懂的内容可以通过Google搜索。可是在Igor Pro的学习过程中,笔者从来没有用过一次Google或者百度,甚至连这种意识都没有(笔者想本书的读者和笔者也是一样的)。原因很简单,网上没有任何关于Igor Pro的学习资料。笔者能做的,就是向同实验室的人请教,自己在挫折中慢慢摸索; 阅读现有的代码,掌握Igor Pro的基本使用方法。这里笔者不得不感谢笔者的导师周兴江研究员,他不仅是一位在超导研究领域取得卓越成就的科学家,也是一位出色的Igor Pro编程大师。笔者今天关于Igor Pro的认识,应该说就是从研究他的代码开始的。
学习的经历是艰辛的。任何一个小问题的解决都不容易。现在回顾起来,笔者发现走了很多弯路,不仅是学习的弯路,还有使用的弯路。当时使用的很多方法其实非常笨拙,效率非常低。比如一个最基本的问题,当时程序运行的速度比较慢,绘制一幅费米面的图需要半分钟左右,大家都认为是Igor Pro的问题。后来笔者发现不是,是我们没有理解Igor Pro中的程序设计机制,没有搞清楚Proc和Function的关系。在搞清楚这个问题后,笔者对所有的程序进行了一次彻底的升级。然后突然发现,以前几分钟的计算现在一眨眼就可以完成。很难想象我们一直在这种低效率的工作状态下使用Igor Pro很多年,仅仅是因为不了解Proc和Function所致!
诸如此类的问题非常多,如图表绘制、数据拟合、算法设计等,不胜枚举。很显然,要做好这些工作,需要很好地了解Igor Pro。
遗憾的是,Igor Pro的学习资料太少了。Igor Pro其实是一款非常优秀的数据处理软件,特别是处于大数据时代的今天,它能将编程与数据可视化完美地融为一体,既具有Python、R等脚本编程语言的可扩展性,又具有Origin等数据可视化工具的方便易用性,十分难得。但由于软件的语言(英语)、需要编程的特性以及用户使用群体(主要集中在国外)等原因,Igor Pro一直未被广大用户所了解。这样造成的后果就是没有人去讨论和贡献自己对Igor Pro的心得和使用技巧。Igor Pro本身的软件文档写得非常好,但是作为一个手册,其实是不适合初学者的,只有在一定的基础上看软件文档,才有效果。初学者直接看文档,很容易感到迷茫。
由于学习资料的匮乏,很多人,特别是刚进入实验室的人员对Igor Pro望而生畏,转而去选择其他的工具。其实,Igor Pro更适合他们,更适合他们处理数据。于是,Igor Pro的潜在使用者就这么流失了。反过来,这又影响了后来的人去选择Igor Pro。
虽然有所谓“酒香不怕巷子深”的古训,但是,如果酒是香的,为什么不能将它放到“浅”一点的巷子里呢?好东西应该是被大众所共享的,而不应只属于个别“资深酒客”。
在这么多年使用Igor Pro的过程中,在帮助他人解决Igor Pro的一些问题时,笔者对Igor Pro的认识也越来越深刻。笔者发现,Igor Pro能做的其实远比我们想象的多。但是,很多人,包括在实验室里天天使用Igor Pro的人们,却没有意识到,其实他们使用Igor Pro的水平并不高(这当然是完全可以理解的,由于更专注于科学研究,他们不可能在这上面花太多精力)。
所有的这些,促使笔者决定编写一本关于Igor Pro使用的书籍,把笔者这么多年来对Igor Pro的使用心得和经验总结出来,公布于众。所谓授人以鱼,不如授人以渔。笔者的目的就是希望读者在使用Igor Pro遇到困惑时,能知道去哪儿找到解决问题的方法,少走一些弯路,而不是只寄希望于求助别人或者浪费很多的时间。同时,也更希望读者能利用本书中提到的知识提高数据处理效率,节约时间和精力。当然,笔者知道本书离这个目标还很远,但至少这是一个好的开始。
本书真正的写作始于两年前。这个过程和笔者学习Igor Pro的经历一样,也是艰辛的: 没有资助,缺乏参考资料,只能利用业余时间创作。所有的一切都是靠兴趣、靠对Igor Pro的热爱在支撑。当然这很正常,任何一个新的领域在刚开始时都是这样的。既然还没人做这件事情,那么就从笔者开始吧。
本书的体例结构都是经过精心设计的,目的就是突出实用性。各章节结构具有相对的独立性,每一小节一般都对应于Igor Pro某个方面的使用。建议读者仔细阅读第1章和第5章,前者是Igor Pro工作原理的基础,后者是程序设计的基础。其他各章节可在需要的时候选择性阅读。另外,读者在阅读本书时,可结合Igor Pro自带的软件手册进行学习,这样会获得事半功倍的效果。
在完成本书的过程中,笔者曾与周兴江研究员、谢卓晋博士、物理所超导实验室SC7组进行过多次讨论,书中很多创作的灵感都来源于这些讨论,在此表示谢意。
最后,由于本书是此领域的第一本书,也限于笔者的水平,书中难免存在错误之处。在这里恳请读者在阅读过程中发现错误能及时指出,以便笔者及时修正。
贾小文
2018年1月于天津
|
|