0. 前言
运行简单的IDL脚本
读FITS二进制表
写FITS文件
处理字符串
颜色表操作
画多个子图
创建窗口
读大数据表
曲线拟合时限定参数范围
本教程除了告诉可以做什么之外,还告诉不可以做什么。自从听过软件管理的讲座以后,我越来越觉得错误比正确有价值——要不然计算管理体系文件的价值的时候为什么按照失败的次数来算呢?
1. 常用操作
(1) 用sort排序
IDL> a=[1.5,2.6,0.1,10.0,5.0]
IDL> sort(a)
程序将返回排序之后的“数组指标”,即每个数在原来数组中的位置,而不是数字本身。
(2) 用where函数寻找数组中满足某判据的数
IDL> a=findgen(10)^2
IDL> where(a gt 25)
程序范围的将是数组a中大于5的数的“数组指标”,而不是数字本身!返回数组指标比返回数组本身有用得多,因为从指标得到数比反过来容易。但是这还不是最好的做法,因为返回指标的时候,有些数就被扔掉了。我见过最好的做法是matlab的做法,matlab在进行类似操作的时候返回的是一个和原数组同样大小的逻辑值数组,满足条件的位置为1,其他地方为0。
2. 常见错误
(1) 把整数当作浮点数放到分母里做除法
IDL> print,2/4
结果是0,而不是0.5,因为这里是整数除法,得到的也是整数。
(2) 不同变量的变量名重复(注意IDL不区分大小写)
这通常发生在变量名命名不规范的程序中。这一条主要是写给我自己看的。我的程序里会用到光速,我将其叫做c。随后,我从三个FITS文件中读入数据到三个数组,偷懒,我就分别取为a、b、c。然后,就没有然后了。
(3) 在某些字体中,l和1长得一样,O和0长得一样,不注意就会导致错误。
(4) variance(a)计算的是数组a的方差,方差不是均方根!
(5) 查看结构体的属性要用
IDL> help,a,/str
用
IDL> help,a
看不到结构体中的变量名。
示例程序
tut1.pro
tut2.pro
tut3.pro
tut4.pro
https://blog.sciencenet.cn/blog-117333-682225.html
上一篇:
科研的可继承性下一篇:
微分方程与预报