IDL中Format代码详细解释以及用法大全

上传人:pu****.1 文档编号:493490223 上传时间:2022-12-01 格式:DOC 页数:9 大小:72.50KB
返回 下载 相关 举报
IDL中Format代码详细解释以及用法大全_第1页
第1页 / 共9页
IDL中Format代码详细解释以及用法大全_第2页
第2页 / 共9页
IDL中Format代码详细解释以及用法大全_第3页
第3页 / 共9页
IDL中Format代码详细解释以及用法大全_第4页
第4页 / 共9页
IDL中Format代码详细解释以及用法大全_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《IDL中Format代码详细解释以及用法大全》由会员分享,可在线阅读,更多相关《IDL中Format代码详细解释以及用法大全(9页珍藏版)》请在金锄头文库上搜索。

1、文档供参考,可复制、编制,期待您的好评与关注! IDL中Format代码详细解释以及用法大全Format这个关键字在IDL应用过程中无处不在,Format代码(Format codes)有两种:第一种用于在数据的输入输出、类型转换过程中,是最经常用到一种方法。我们常听到诸如float型小数点没有显示全、科学计数格式转换、输出的时候字符怎么对齐,字符宽度设置、二进制、8进制、10进制、16进制怎么转换等等都和这种用法有关。功能很强大,也是大家容易晕的地方。而且目前市面的IDL书和帮助介绍的都不全面,有些书还有严重的谬误。所以这里对Format做了全面整理详细全面介绍了format的含义以及for

2、mat的各种用法。第二种是用于嵌入到字符串中,用于字符格式控制。如字体选择、上标、下标控制等。用在直接图形发xyouts,对象IDlgrtext widget界面组件里。以后再做介绍。一、基本语法介绍IDL的format语法结构如下:N FC+-width符号描述N代表格式控制的重复次数,默认是1FC即format codes的简写,格式控制代码+给正数加上前缀-控制输出时对齐方向WidthWidth是输出字符的宽度看着上面的语法结构,谁都有点晕。让我们来详细解释一下:1.N代表格式控制的重复次数,默认是:默认1的情况IDL print,FORMAT=(I12), 300,400,500300

3、400500重复3次情况IDL print,FORMAT=(3I12), 300,400,5003004005002.FC即format codes的简写,格式控制代码也就是你需要实现的功能的格式控制码,这个在下面做最详细介绍3.+给正数加上前缀如果是正数输出的时候在数字前面加上一个+。这个+符号只有在数字的格式化输出的时候才有效。不是十进制的数字输出的时候也可以加,不过没啥效果例:没有+情况IDL print,FORMAT=(I12), 300,-300300-300有+号情况IDL print,FORMAT=(I+12), 300,-300+300-3004.控制输出时对齐方向也是可选符号

4、,加了-符号字符和数字输出的时候是左对齐,默认是右对齐,例:默认情况IDL print,FORMAT=(2I12), 300,-300300-300加上-IDL print,FORMAT=(2I-12), 300,-300300-3005.Width是输出字符的宽度。如果定义的宽度超出输出字符宽度,不补0或空格1.默认情况如果格式输出定义宽度超过字符宽度是补空格的IDL print,FORMAT=(a10),abcabcIDL print,FORMAT=(I10),4004002.在对数字输出的时候,如果在宽度前面加0。超出部分就会补0IDL print,FORMAT=(I010), 4000

5、0000004003.自然宽度输出:如果定义width是0的话。在值的读取和输出时候采用自然宽度,也是数字默认格式宽度是多少就按多少读取和输出。对字符宽度不定情况,非常有用。例如读取表格数据。a=26.0001, 92.555, 344.2,101.0 ,6.123, 99.845,23.723 ,200.02111 ,141.93IDL print,a26.000192.5550344.200101.0006.1230099.845023.7230200.020141.930IDL print,FORMAT=(f0),a26.00009992.555000344.200012101.0000

6、006.12300099.84500123.723000200.020004141.929993二、Format codes格式控制代码的详细介绍和用法说明IDL中支持Format codes代码有13种用法。如下表所示:numFormat Code描述使用范围1A用于字符的输出2:冒号用于输出时终止符号的处理3$用于禁止输出换行符4F, D, E, G用于浮点数的输入、输出5B, I, O, Z用于整形数的输入、输出的格式转换。B是进制 I为十进制 o是八进制 z为16进制6Q在进行读取时,返回每一行的字符数7字符串和H用引用字符 或 H直接输出字符8T定义输出字符的绝对位置9TL把当前的字

7、符位置向后(左)移动10TR ,X把当前的字符位置向前(右)移动11C()用于输出日期数据(Julian data格式 ,/ 格式,时间格式)12C printf-Style提供c系语言风格的格式输出,为熟悉c语言输准备。13/换行输出Format codes的13种详细用法如下:1.A字符操作用于字符的格式化输出,用于print/printf.语法:nA-wn,-,w见基本语法介绍例子:1.输出宽度6字符IDL PRINT, FORMAT = (A6), 1234567891234562.:输出分割符操作冒号“:“用于每个参数输出时的分割符的设定。默认是空格分隔。IDL a=200.1,11

8、,30.4,56,001,300.6IDL PRINT, FORMAT = (6(I), a2001130561300用逗号分割IDL PRINT, FORMAT =(6(I,:,), a200,11,30,56,1,3003.抑制换行符$符号用于抑制换行符的输出。在使用print在控制台输出和用printf向文本输出数据的时候。IDL默认是自动换行的。如:IDL str1=aIDL str2=bIDL print,str1 & print,str2ab可以看出打印完a就就自动换行了。对输出a进行抑制换行符输出:IDL print,format=( $,a ) ,str1 & print,st

9、r2ab4.F, D, E, G浮点数操作这四个格式符都是用于浮点数的输出和输入。语法:nF+-w.dnD+-w.dnE+-w.dEenG+-w.dEeF是定点计数法来输出浮点型(单精度和双精度)数值。把数值四舍五入到d的精度,保留w个字符宽度D和F功能完全是一样的,主要是兼容FORTRAN语言习惯。让给习惯使用FORTRAN的人提供便利。E以指数形式(科学格式)输出浮点数,把数值四舍五入到d的精度,保留w个字符宽度G根据数据大小自动选择科学格式E或者F格式输出对浮点格式化输出,IDL提供默认字符宽度和精度数据类型W默认字符宽度d默认小数点精度位数Float, Complex157Double

10、2516All Other Types2516例子格式字符使用范例F/DIDL a=100.IDL print,a,format=(f)100.0000000IDLa=100.IDL print,a,format=(f)100.0000000000000000IDLa=100.IDL print,a,format=(f10.3)100.000IDa=100.IDL print,a,format=(f2.3)*EIDLa=100.IDL print,a,format=(e11.4)1.0000e+002IDLa=100.IDL print,a,format=(E11.4)1.0000E+002G

11、IDLa=100.IDL print,a,format=(g10.4)100.0IDLa=10000000.IDL print,a,format=(g10.4)1.000e+0075.B, I, O, Z进制转换操作用于对整形数值的输出。可以用来对二进制、十进制、八进制、十六进制转换。B输出2进制数;I输出10进制数;O输出8进制数;Z输出16进制数语法nB-w.mnI+-w.mnO-w.mnZ-w.m格式字符使用范例BIDL a=10IDL print,a,format=(b)1010IDL a=1000IDL print,a,format=(b15)1111101000IIDL a=100

12、0IDL print,a,format=(I)1000IDL a=1000IDL print,a,format=(I10)1000IDL print,a,format=(I15)1000IDL print,a,format=(I3)*OIDL a=10IDL print,a,format=(o)12IDL a=10IDL print,a,format=(o-6)12ZIDL a=10IDL print,a,format=(Z6)AIDL a=5000IDL print,a,format=(Z10)1388IDL a=5000IDL print,a,format=(Z3)*6.Q计数操作Q很有意思,它是在读数据时,返回当前行的字符个数。如果你想得到文件中一行的个数,这个会很有用。例如:数据data.txt,有三行保存以下数据。123451234567123456789程序如下:Protestfile = E:testdata.txtopenr,lun,file,/get_lunWHILE( EOF(lun) DO BEGINREADF, lun, CUR, FORMAT = (q)print,CURENDWHILEfre

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 国内外标准规范

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号