- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《IDL入门教程_08(IDL编程基础)》.doc
第八章 IDL编程基础
本章概述
本章的目的是学习IDL基本编程技巧,具体的来说,可以学到以下方面内容:
IDL批处理文件、主程序、过程和函数之间的区别;
如何在IDL程序中输入和输出信息;
如何在IDL程序中使用定位参数和关键字;
如何编译和运行IDL程序;
程序中的常用控制语句语法
如果把IDL程序看作一系列IDL命令的话,那么IDL程序——或称为IDL程序模块——可以分为四类:(1)批处理文件(2)主程序(3)过程(4)函数。
编写IDL批处理文件
最简单的程序是一个IDL批处理文件。一个批处理文件由一系列命令组成,这与在IDL命令行敲入的命令完全一样。大多数人用批处理文件是为了自动执行自己在IDL命令行一次又一次敲入的命令。
例如,假设要在IDL中打开并显示一组图像,如果已经将图像数据读入到变量image中,那么用来显示图像的命令可以如下所示:
IDL thisImage = BytScl (image, Top = 199)
IDLLoadCT, 5, NColors = 200
IDL s = Size (image)
IDL Window, /Free, XSize = s[1], ysize = s[2]
IDL TV, thisImage
这五行代码并不多,但键入三、四次之后,可能已决定把他们放在一个名为ImageO文本文件中。这文件就是所谓的批处理文件。
要执行该文件中的命令,必须把@放在IDL命令行的开头,其后再加上文件名即可。(.pro为默认扩展名。如果加了其它扩展名,那么应该把文件名称写完整)如下所示:
IDL @ImageOut
注意,文件名没有在引号中,这与IDL文件名的一般规则是不一致的。
IDL会严格执行批处理文件中的命令,就像在命令行上键入一样。这意味着有必要用行续字符($)和其他命令行语言来让IDL确认键入的命令。如果在文件中的命令输入错误,那么出现的错误结果和在命令行键入命令出现的错误结果是一样的。
假设要打开8到10个图像文件,因而不得不分别打开每个图像文件,读取数据,然后运行批处理命令将每一个图像显示在窗口中。具体地说,可以这样自动进行读取数据和显示图像过程:
theseFiles = FindFile (‘*.img’, count = numFiles)
Print, ‘number of files found: ‘, numfiles
For j = 0, numFiles-1 Do Begin
Openr, lun, theseFiles[j], /get_lun
Image = BytArr (512,512)
Readu, lun, image
Free_lun, lun
thisImage = BytScl (image, top =199)
LoadCT, 5, Ncolors =200
S = size (image)
Window, /Free, XSize = s[1], YSize = s[2]
TV, thisImage
Endfor
但是这个文件不适合于作批处理文件,因为FOR循环里面有多行语句。如果没有续行符($)和命令连接符()的话,这种程序是很难写在命令行中的。为了自动执行由多行控制语句组成的命令,最好使用IDL主程序。
编写IDL主程序
IDL主程序和批处理文件在很多方面很相似,但也存在着很大的区别。像批处理文件一样,一个主程序也包含一系列命令。但与之不同的是,这些命令必须以END语句结束。例如,上面自动读取数据和显示图像的程序可以写成一个IDL主程序:
theseFiles = FindFile (‘*.img’, count = numFiles)
Print, ‘number of files found: ‘, numfiles
For j = 0, numFiles-1 Do Begin
Openr, lun, theseFiles[j], /get_lun
Image = BytArr (512,512)
Readu, lun, image
Free_lun, lun
thisImage = BytScl (image, top =199)
LoadCT, 5, Ncolors =200
S = size (image)
Window, /Free, XSize = s[1], YSize = s[2]
TV, thisImage
Endfor
End
批处理文件和IDL主程序最大的区别就是主程序的命令语句先由IDL编译器编译成程序模块,然后才执行代码。这就是为什么在主程序中可以有多行控制语句的原因。
如果将上面的代码保存在文件ImageO中,键入如下命令就可以编译并运行这个程序模块:
IDL .R
您可能关注的文档
- 《GB50611-二零一六年电子工程防静电设计规范B5》.doc
- 《GB50611-二零一六年电子工程防静电设计规范B5条文说明》.doc
- 《GB7450-87 电子设备雷击保护导则》.doc
- 《GB9706.1-二零一六年标记要求与电气绝缘图1》.ppt
- 《GBJ120-88; 工业企业共用天线电视系统设计规范》.docx
- 《GBJ303-88建筑电气安装工程质量检验评定标准》.doc
- 《GBT 10069 电机噪音测量》.ppt
- 《GBT 28557-二零一六年 电力企业节能降耗主要指标监管评》.doc
- 《GBZ 21276-二零一六年电子电气产品中限用物质 多溴联苯(PBBs)、多溴二苯醚(PBDEs)检测方法》.doc
- 《GB/T14549--93电能质量-公用电网谐波》.doc
- 吉安县公开招聘专职文明实践员笔试备考试题及答案解析.docx
- 2025重庆枫叶国际学校招聘教师笔试备考试题及答案解析.docx
- 游机队电玩自制联网教程-tplink.pdf
- 2025重庆新华出版集团招聘1人笔试模拟试题及答案解析.docx
- 2025宜宾高新丽雅城市产业发展有限公司公开招聘笔试模拟试题及答案解析.docx
- 2025云南保山市龙陵县勐糯镇人民政府招聘合同制专职消防员1人笔试模拟试题及答案解析.docx
- 11.1生活中常见的盐 九年级化学人教版下册.pptx
- 6.1法律保护下的婚姻 高二政治《法律与生活》课件(统编版选择性必修2)(新版).pptx
- 文昌市中小学教师校园招聘29人笔试模拟试题及答案解析.docx
- 10.1.5 常见的酸和碱(第5课时)课件-九年级化学人教版下册.pptx
文档评论(0)