IDL-第二章-语法基础ppt课件

上传人:资****亨 文档编号:145849680 上传时间:2020-09-23 格式:PPT 页数:43 大小:395.50KB
返回 下载 相关 举报
IDL-第二章-语法基础ppt课件_第1页
第1页 / 共43页
IDL-第二章-语法基础ppt课件_第2页
第2页 / 共43页
IDL-第二章-语法基础ppt课件_第3页
第3页 / 共43页
IDL-第二章-语法基础ppt课件_第4页
第4页 / 共43页
IDL-第二章-语法基础ppt课件_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《IDL-第二章-语法基础ppt课件》由会员分享,可在线阅读,更多相关《IDL-第二章-语法基础ppt课件(43页珍藏版)》请在金锄头文库上搜索。

1、面向对象程序设计IDL,第二章 语法基础,.,第二章 语法基础,2.1 数据类型 2.2 常量与变量 2.3 数组 2.4 字符串 2.5 结构体 2.6 指针 2.7 对象 2.8 链表 2.9 哈希表 2.10 运算符,.,2.1 数据类型,.,2.1 数据类型,.,2.2 常量与变量-命名规则,变量命名规则 不区分大小写 长度不超过255 首位只能是字母和下划线 其余可以使字母、下划线、数字、续行符$ 变量无需预先定义 IDL print,idl_validname(abc) abc IDL print,idl_validname(a b c,/convert_spaces) a_b_c

2、,.,2.2 常量与变量变量类型转换,IDL print,float(1) 1.00000 IDL print,fix(1.3+1.8) 3 IDL print,byte(1.2) 1 IDL print,byte(-1) 255 IDL print,byte(01abc) 48 49 97 98 99 IDL print,string(65b,66b,67b) ABC,.,2.2 常量与变量变量类型转换(二),IDL a=33000 IDL print,fix(a) -32536 IDL result=8/5 IDL print,result 1 IDL result=8/float(5)

3、IDL print,result 1.60000,Floor向下取整 Ceil 向上取整 Round 四舍五入,.,2.2 常量与变量-类型动态变化,变量类型的动态性 IDL num=6 IDL help,num NUM INT = 6 IDL num=num*1.2 IDL help,num NUM FLOAT = 7.20000 改变数组部分元素不改变数组类型,IDL data=bytarr(3,3) IDL help,data DATA BYTE = Array3, 3 IDL data*,0=2,4,258 IDL help,data DATA BYTE = Array3, 3 IDL

4、 data=data*1.2 IDL help,data DATA FLOAT = Array3, 3,.,2.2 常量与变量-系统变量,系统变量 IDL defsysv,!sys_var,88 IDL help,!sys_var INT = 88 自定义系统变量定义之后,值可修改,但类型不能改,.,2.3 数组-创建数组(一),创建数组(一) 赋值创建, arr=1,2,3 IDL help,arr ARR INT = Array3 IDL print,arr 1 2 3 arr1=1,2,3,4,5,6 IDL print,arr1 1 2 3 4 5 6,创建数组(二) 函数创建 IDL

5、 arr=bytarr(3,3) IDL help,arr ARR BYTE = Array3, 3 IDL arr1=intarr(3,4) IDL help,arr1 ARR1 INT = Array3, 4 IDL arr2=fltarr(5,4) IDL help,arr2 ARR2 FLOAT = Array5, 4 IDL arr3=complexarr(3,3) IDL help,arr3 ARR3 COMPLEX = Array3, 3,.,2.3 数组-创建数组(二),创建索引数组 IDL arr=findgen(3) IDL help,arr ARR FLOAT = Arr

6、ay3 IDL print,arr 0.000 1.000 2.000 IDL arr1=indgen(3,3) IDL help,arr1 ARR1 INT = Array3, 3 IDL print,arr1 0 1 2 3 4 5 6 7 8,.,2.3 数组-存储方式,数组的存储方式 一维数组arrn arr0-arr1-arri-arrn-1 二维数组arrm,n 代表n行m列 arr0,0-arr1,0-arrm-1,0 arr0,1-arr1,1-arrm-1,1 - arr0,n-1-arr1,n-1-arrm-1,n-1 t*m*n的三维数组为arrn,m,t,.,2.3 数

7、组-用法(一),数组的用法 常规方式:数组名下标或数组名(下标) IDL array=indgen(8) IDL print,array 0 1 2 3 4 5 6 7 IDL print,array3 3 IDL print,array(3) 3 接受负下标 IDL print,array-1 7 IDL print,array-8 0,.,2.3 数组-用法(二),向量方式: IDL print,array1,3,5 1 3 5 取子数组 使用“:”,实现一段数据 IDL print,array1:5 1 2 3 4 5 IDL print,array1:5:2 1 3 5 使用“*”,实

8、现所有数据 IDL print,array* 0 1 2 3 4 5 6 7,.,2.3 数组-用法(三),提取矩阵的对角线元素? 一维“冒号”方式 IDL arr=indgen(5,5) IDL print,arr0:24:6 0 6 12 18 24 一维函数式 IDL print,arrindgen(5)*6 0 6 12 18 24 二维函数式 IDL print,arrindgen(5),indgen(5) 0 6 12 18 24,.,2.3 数组-基本运算(一),求大、求小和求余 数组求大(value)将数组中小于value的赋为value 数组求小( arr=indgen(5)

9、 IDL print,arr3 3 3 3 3 4 IDL print,arr print,arr mod 2 0 1 0 1 0,.,2.3 数组-基本运算(二),数组和数运算(加,减,乘,除,乘方) 将数组各个元素都和数进行运算 IDL arr=indgen(5) IDL print,arr 0 1 2 3 4 IDL arr1=arr+6 IDL print,arr1 6 7 8 9 10 IDL arr2=arr*4 IDL print,arr2 0 4 8 12 16,.,2.3 数组-基本运算(三),数组和数组运算 当两个数组大小一致,直接对应运算 当两个数组大小不一致,以小数组为

10、标准进行运算,结果数组与小数组一致 当数组为多维数组时,先转换成一维数组进行运算,结果数组与小数组一致,IDL arr1=2,4,6,8 IDL arr2=3,5 IDL print,arr1+arr2 5 9 IDL arr3=1,2,3,4,5,6 IDL arr4=1,2,3,4 IDL print,arr3+arr4 2 4 6 8 IDL print,arr1*arr2 6 20 IDL print,arr3*arr4 1 4 9 16,.,2.3 数组-基本运算(四),数组合并:数组拼接,必须有相同的行数或列数 IDL a=indgen(2,5) IDL b=indgen(4,5)

11、 IDL c=a,b IDL help,c C INT = Array6, 5 IDL d=indgen(2,3) IDL e=a,d IDL help,e E INT = Array2, 8,.,2.3 数组-矩阵(一),矩阵相乘:A#B,A的列乘以B的行,A的列数等于B的行数 等价于数学上BA,.,2.3 数组-矩阵(二),矩阵反乘:A#B,A的行乘以B的列 等价于数学上的AB,.,2.3 数组-矩阵(三),如何对矩阵的某一行操作? 如何交换矩阵中的某行或某列?,.,2.3 数组-函数运算(一),Size函数:获取变量相关信息 Result = SIZE( Expression , /L6

12、4 ,/DIMENSIONS | ,/FILE_LUN | , /FILE_OFFSET | ,/N_DIMENSIONS | ,/N_ELEMENTS | ,/SNAME, | , /STRUCTURE | ,/TNAME | ,/TYPE ) 无关键字时,一个返回值是维数n,第二个到n+1个为该维大小,倒数第二个为类型代码,倒数第一个为元素总个数 有关键字时,返回所设置关键字的值,.,2.3 数组-函数运算(二),where函数:条件查找 Result = WHERE( Array_Expression ,Count ,COMPLEMENT=variable ,/L64 ,NCOMPLEM

13、ENT=variable ,/NULL ) Array_Expression:条件表达式 Count:符合条件的元素个数 COMPLEMENT=variable:不满足条件元素下标 NCOMPLEMENT=variable:不满足条件元素个数,.,2.3 数组-函数运算(三):统计函数,sort函数:排序 Result = SORT(Array ,/L64) N_Elements函数:计算数组元素个数 Result = N_ELEMENTS(Expression) Max函数:计算数组最大值 Result = MAX( Array ,DIMENSION=value ,MIN=variable)

14、 Min函数:计算数组最小值 Result = MIN( Array ,DIMENSION=value ,MAX=variable,.,2.3 数组-函数运算(三):统计函数,Total函数:计算数组元素的和 Result = TOTAL( Array ,Dimension Product函数:全部或部分元素乘积 Factorial函数:阶乘计算 Mean函数:平均值计算 Variance函数:方差计算 Stddev函数:标准差计算,.,2.3 数组-函数运算(四):数组转动,reverse函数:数组反转,对行或列进行反转 Result = REVERSE( Array ,Subscript_

15、Index ,/OVERWRITE ) Index=1,代表行;index=2,代表列 transpose函数:数组转置 Result = TRANSPOSE( Array ,P ) P为维数的数组列表,不设置,完全反转,.,2.3 数组-函数运算(四):数组转动,rotate函数:数组旋转 Result = ROTATE(Array, Direction) Direction代表旋转角度 rot函数:数组任意角度旋转、任意比例变化 Result = ROT( A, Angle, Mag, X0, Y0 ,/INTERP ,CUBIC=value-1 to 0 ,MISSING=value ,

16、/PIVOT ) A表示数组,angle表示旋转角度,mag表示比例尺,x0,y0表示旋转中心,.,2.3 数组-函数运算(五),shift函数:数组平移 Result = SHIFT(Array, S1, ., Sn) Si代表第i维移动的量,正代表前(右,下),负代表后(左,上),.,2.3 数组-函数运算(三):更改数组大小,Reform函数:更改维数 Result = REFORM( Array, D1, ., D8) rebin函数:修改数组大小,为行、列数的整数倍(数据插值,重采样:默认双线性内插,sample为最邻近插值) Result = REBIN( Array, D1, ., D8 ,/SAMPLE ) cong

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

当前位置:首页 > 高等教育 > 大学课件

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