版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——IDL可视化入门与提高其次章IDL可视化入门与提高2.1交互式与编译式
2.1.1交互式模式
交互式模式可以利用简单有效的单行命令快速进行数据分析和实现可视化。在交互式模式下,命令在IDL提醒符下输入,并且当用户按回车键时执行
输入如下命令:
X=findgen(201)*0.1;创立一个包含了201个元素的浮点数组,第一个元素为0.0,步长为0.1
Y=sin(x);创立浮点数组x的正弦函数数组Plot,x,y;绘出sin(x)的函数
交互模式最大的有点是,用户工作的结果能迅速地在图像、图形等窗口中实现可视化
2.1.2编译模式在此先不做介绍
2.2变量
IDL创立变量时,不需要对变量进行类型声明
IDL>var=2.0;创立一个浮点型变量,对变量进行初始化IDL>help,var
VARFLOAT=2.00000
重新定义为整型
IDL>var=2;创立一个整型变量,对变量进行初始化IDL>help,var
VARINT=2
2.2.2跟踪变量类型
无论在IDL的命令行,还是在IDL的程序中,使用“help〞命令始终是帮助显示变量类型和大小的有效途径
对于标量类自变量在上列中以给出说明,在此不做赘述
对于数组类变量,“help〞命令显示自变量的名称、大小、类型
IDL>arr=[12,13,14]IDL>help,arr
ARRINT=Array[3]
2.2.3数据类型的转换
IDL自身提供了变量转换函数
IDL>x=3.141567IDL>help,x
XFLOAT=3.14157IDL>fix(x)fix(x)^
%Syntaxerror.IDL>x=fix(x)IDL>help,x
XINT=3IDL>x=byte(x)IDL>help,x
XBYTE=3
假使要转换为byte,字节型变量,在转换的过程中只有最不重要的八位会转换过来,即最终面的八位列入:
Var=567;567转换为二进制为1000110111Var=byte(var);只会保存最终面的八位,0110111Help,var;最终得到的结果是55
IDL中默认的整数数据是16为有符号整型
2.2.4浮点数想整型的转换
当fix和long函数使用于浮点型变量向整数型变量转换时,将会发生截断现象
IDL>x=[4.23,4,56]IDL>print,x
4.230004.0000056.0000IDL>print,fix(x)4456
IDL>arr=[3.14,7.89,-5.7,-9.8]IDL>print,arr
3.140007.89000-5.70000-9.80000IDL>print,fix(arr)
37-5-9IDL>;x
IDL>;将浮点数组转换为整数型数组,数组中所用元素舍去小数点后的数字IDL>print,long(arr)
37-5-9IDL>print,round(arr);对数组中的每个元素进行四舍五入38-6-10
IDL>print,floor(x);小于或等于自变量且最接近自变量的长整型整数4456IDL>print,floor(arr)
37-6-10
IDL>print,cei(arr);大于或等于且最接近自变量的长整型整数%Variableisundefined:CEI.
%Executionhaltedat:$MAIN$IDL>print,ceil(arr)
48-5-9
2.2.5字符串和数字类型之间的转换
字符串变量可以转换为数字类型(里面含有数字数值)
IDL>print,float('3.2')3.20000
IDL>print,float('123abc')123.000
假使不包含数字数值,那么在转换时IDL会给出一个警告信息,并输出解果0
IDL>print,float('wode')
%Typeconversionerror:UnabletoconvertgivenSTRINGtoFloat.%Detectedat:$MAIN$0.000000
当变量的字节类型向字符串类型转换时,输出结果是一个标量变量,该变量是对应于输入变量的ASCII码字符
IDL>print,string([47B,48B])/0
当变量的字符串类型想字节类型转换时,输出结果是一个数组,其元素值是对应于输入字符串中每个字符的ASCII值
IDL>help,byte('ABC')
BYTE=Array[3]IDL>print,byte('ABC')656667
2.2.6变量的名称
IDL中变量的名称必需以字母开头,它们可以包括其他字母、数字、下划线、美元符号。2.3数组简介
在IDL中可以为任何IDL数据类型创立1~8维数组。紧凑的数组语法能保证数组运行时不适用循环操作。数组操作的优点表达在运行速度上2.3.1创立数组
在IDL中利用方括号,创立数组创立一维数组
IDL>x=[1,2,3,4,5]IDL>help,x;用于显示x的大小
XINT=Array[5]IDL>print,x;输出x的值
12345
创立多维数组
IDL>x=[[1,2,3],[4,5,6]];创立两行三列的数组IDL>print,x
123456IDL>;输出xIDL>help,x
XINT=Array[3,2]
IDL>;输出x的横列号,对于IDL中的数组,m为列,n为行
值可以附加到已经存在的数组中
IDL>y=[[x],[6,7,8]]IDL>print,x
123456IDL>print,y
123456678
2.3.3创立数组的函数
IDL的内建函数允许用户按给定的类型创立数组,同时数组中的每一个元素都被初始化为0(intarr),或被初始化为在数组中的索引值(indgen)
IDL>zeros=intarr(6);创立一个元素值都为0的数组IDL>help,zeros
ZEROSINT=Array[6]IDL>print,zeros
000000IDL>print,float(zeros);转换为浮点数组
0.0000000.0000000.0000000.0000000.0000000.000000IDL>index=indgen(6);创立索引数组IDL>print,index
012345IDL>index=indgen(3,5)IDL>help,index
INDEXINT=Array[3,5]IDL>print,index;建立多维索引数组
01234567891011121314
Replicate函数将创立一个特定维数的数组,并将某个标量值复制到该数组中
IDL>arr=replicate(5,3,2);创立元素值为5的2行3列数组IDL>print,arr;输出数组555555
Make_array函数将创立一个特定维数的数组,给数组可以是零数组IDL>zeroed=make_array(3,2)IDL>print,zeroed
0.0000000.0000000.0000000.0000000.0000000.000000创立索引数组
IDL>index=indgen(6);创立索引数组IDL>print,index
012345IDL>index=indgen(3,5)IDL>help,index
INDEXINT=Array[3,5]IDL>print,index
01234567891011121314
IDL>arr=replicate(5,3,2);创立元素值为2的2行3列数组IDL>print,arr;输出数组555555
IDL>zeroed=make_array(3,2,/fix)
%KeywordFIXnotallowedincallto:MAKE_ARRAY%Executionhaltedat:$MAIN$IDL>zeroed=make_array(3,2)IDL>print,zeroed
0.0000000.0000000.0000000.0000000.0000000.000000
IDL>index=make_array(3,2,/float,/index);创立一个两行三列的数组,数组中的元素类型为浮点型,元素值为索引值IDL>print,index
0.0000001.000002.000003.000004.000005.00000
IDL>index=make_array(6,\\long,value=32L);创立一个数组元素为32的长整型索引数组
index=make_array(6,\\long,value=32L);创立一个数组元素为32的长整型索引数组^
%Illegalcharacterinprogramtext.
IDL>index=make_array(6,/long,value=32L);创立一个数组元素为32的长整型数组IDL>help,index
INDEXLONG=Array[6]IDL>print,index
323232323232
2.3.4浮点网格数组
IDL中可以任意步长创立确切而有效的一维网格数组。
要求创立这样的一个浮点数组,它的元素值从1000.0按步长0.23均匀地上升到1010.0.
IDL>x1=1000.0IDL>x2=1010.0IDL>dx=0.25IDL>a=1.0e-5+2IDL>print,a2.00001
IDL>nx=floor((x2-x1)/dx)+1LIDL>help,nx
NXLONG=41
IDL>arr=lindgen(nx)*dx+x1;创立一个含有nx个元素,步长为dx的数组IDL>help,arr
ARRFLOAT=Array[41]IDL>print,arr[39:41],format='(5f11.4)'
%Subscriptrangevaluesoftheformlow:highmustbe>=0,print,arr[38:40],format='(5f11.4)'1009.50001009.75001010.0000
2.4数组下标
第一种形式是将下表用方括号括起来以形成一个数组的名称
IDL>arr=indgen(10)*3;创立以为索引数组,数组的步长为3IDL>print,arr
0369121518212427IDL>index=5IDL>print,arr[index]15
IDL>print,arr,format='(5i6)'0369121518212427IDL>print,arr[7]21
其次种形式是将下标用方括号括起来,并将数组的描述放在小括号内
IDL>index=5;
IDL>print,(arr*10)[index]150
数组下标同样可以表示为数组的形式
IDL>index=[3,5,7,4,2]IDL>print,arr[index]
91521126
当使用下标表示数组的形式时,假使某些下标超出了范围,则该下标将被转换为在允许范围内的最小或最大值
IDL>index=[-1,0,6,9,1000]IDL>print,arr[index]
00182727
2.4.1数组下标的例如
IDL>arr=indgen(8)*8;创立步长为8的索引数组IDL>print,arr
08162432404856IDL>;标量下标IDL>print,arr[5]40IDL>;下标范围IDL>print,arr[3:5]243240IDL>;所有下标
IDL>print,arr[*]
08162432404856IDL>;从特定下标之后的所有下标IDL>print,arr[5:*]404856IDL>;下标用数组表示IDL>index=indgen(2)IDL>print,arr[index]08
IDL>;下标用变量表达式表示IDL>i=3
IDL>print,arr[i-1:i+1]162432
2.4.2多维数组下标的例如
IDL>arr=indgen(5,3)*2IDL>print,arr
0246810121416182022242628IDL>;标量的下标,取12IDL>print,arr[2,1]14
IDL>;包含所有第一行元素的下标IDL>print,arr[*,0]
02468IDL>;包含所有第一列元素的下标IDL>print,arr[0,*]01020
IDL>;跨越两个维度的下标IDL>print,arr[0:2,0:1]024101214
2.4.3一维下标
无论数组的维数是多少,它总可以用一位数组来表示。也就是说,用户可以设置一个特定的下标,从零开始按多维数组中存储元素的顺序来标记多维数组中的每个元素
IDL>arr=indgen(5,3)*1IDL>print,arr
01234567891011121314IDL>;取元素6IDL>print,arr[1,1]6
IDL>print,arr[4]4
IDL>print,arr[6]6
2.4,5多维下标的抽取
IDL>n=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年企业云计算服务合同
- 2024家庭解体标准分割合同书版
- 2024年度住宅区围墙修建工程协议版B版
- 2024年度公司员工餐厅就餐服务协议版B版
- 2024年度分手后品牌使用权分配协议
- 2024年度二手汽车买卖合同及质保服务条款3篇
- 2024发起人协议书及公司章程
- 2024年专业食用菌菌种交易协议版B版
- 2024年居间服务协议法律解释要点
- 2024年城市绿化苗木供应合同
- 2023年山东公务员考试申论真题及答案解析B卷完整版
- 九年级下册语文理解性默写(含答案)
- 超星尔雅学习通《法律基础》章节测试含答案
- 《环境监测奚旦立》课件
- 2022城乡养老服务中心和老年食堂及助餐点建设运营方案参考范文(附评估表)
- 工地上哪些材料需要见证取样?如何见证取样
- 装饰、装修安全教育培训试卷+答案
- 低压电工作业复审模拟考试题及答案
- 视云实战平台v2.4.1版本测试报告
- HGT20688-2000-化工工厂初步设计文件内容深度规定
- 第九版诊断学课件心电图
评论
0/150
提交评论