序号 |
名称 |
|
功能说明
|
|
语法 & 举例 |
01 |
MAX |
|
最大值。 ---------------------------------------------------------------------------------- Result = MAX( Array [, Max_Subscript] [, /ABSOLUTE] [, DIMENSION=value] [, MIN=variable] [, /NAN] [, SUBSCRIPT_MIN=variable]) ---------------------------------------------------------------------------------- ◈ Max_Subscript:最大值对应的索引值,存在此变量中 ◈ ABSOLUTE:去元素的绝对值进行比较 ◈ MIN=variable:获取最小值 ◈ SUBSCRIPT_MIN=variable:一维数组中的最小值的索引值
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | IDL> A = [ 3 , 4 , - 5 , - 6 , - 3 , 2 , 1 ]
IDL> MAX (A)
4
IDL> MAX (A, i_max)
4
IDL> i_max
1
IDL> MAX (A, / ABSOLUTE)
- 6
IDL> MAX (A, MIN = min )
4
IDL> min
- 6
IDL> MAX (A, MIN = min , SUBSCRIPT_MIN = i_min)
4
IDL> i_min
3
|
|
02 |
MIN |
|
最小值。 ---------------------------------------------------------------------------------- Result = MIN( Array [, Min_Subscript] [, /ABSOLUTE] [, DIMENSION=value] [, MAX=variable] [, /NAN] [, SUBSCRIPT_MAX=variable]) ---------------------------------------------------------------------------------- ◈ Min_Subscript:最小值对应的索引值,存在此变量中 ◈ ABSOLUTE:去元素的绝对值进行比较 ◈ MAX=variable:获取最大值 ◈ SUBSCRIPT_MAX=variable:一维数组中的最大值的索引值
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | IDL> A = [ 3 , 4 , - 5 , - 6 , - 3 , 2 , 1 ]
IDL> MIN (A)
- 6
IDL> MIN (A, i_min)
- 6
IDL> i_min
3
IDL> MIN (A, / ABSOLUTE)
1
IDL> MIN (A, MAX = max )
- 6
IDL> max
4
IDL> MIN (A, SUBSCRIPT_MAX = i_max)
- 6
IDL> i_max
1
|
|
03 |
TOTAL |
|
数组元素的总和。 ---------------------------------------------------------------------------------- Result = TOTAL( Array [, Dimension] [, /CUMULATIVE] [, /DOUBLE] [, /INTEGER] [, /NAN] [, /PRESERVE_TYPE] )
|
|
1 2 3 | IDL> A = INDGEN( 11 )
IDL> TOTAL(A)
55.000000
|
|
04 |
PRODUCT |
|
数组元素总乘积。 ---------------------------------------------------------------------------------- Result = PRODUCT(Array [, Dimension] [, /CUMULATIVE] [, /INTEGER] [, /NAN] [, /PRESERVE_TYPE] )
|
|
1 2 3 | IDL> A = [ 1 , 2 , 3 , 4 , 5 ]
IDL> PRODUCT(A)
120.00000000000000
|
|
05 |
REVERSE |
|
数组反转。 ---------------------------------------------------------------------------------- Result = REVERSE( Array [, Subscript_Index] [, /OVERWRITE] ) ---------------------------------------------------------------------------------- ◈ Subscript_Index:指定维度索引值(1、2、3等)的一个整数值,1 是对行进行反转,2 是对列进行反转
◈ IDL 从影像上读取的数组的原点在左上角,为了转换成符合正常顺序的数组可以对其进行列的反转,即 REVERSE(image, 2)
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | IDL> A = INDGEN( 5 )
IDL> A
0 1 2 3 4
IDL> REVERSE(A)
4 3 2 1 0
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IDL> B = INDGEN( 5 , 2 )
IDL> B
0 1 2 3 4
5 6 7 8 9
IDL> REVERSE(B)
4 3 2 1 0
9 8 7 6 5
IDL> REVERSE(B, 2 )
5 6 7 8 9
0 1 2 3 4
|
|
06 |
ROTATE |
|
数组旋转。 ---------------------------------------------------------------------------------- Result = ROTATE(Array, Direction) ---------------------------------------------------------------------------------- ◈ Direction:旋转角度所对应的数值,1-顺时针90°,2-180°中心对称,3-逆时针90°
|
|
1 2 3 4 5 6 7 8 9 | IDL> C = INDGEN( 3 , 3 )
IDL> C
0 1 2
3 4 5
6 7 8
IDL> ROTATE(C, 1 )
6 3 0
7 4 1
8 5 2
|
|
07 |
ROT |
|
任意角度旋转。 ---------------------------------------------------------------------------------- Result = ROT( A, Angle, [Mag, X0, Y0] [, /INTERP] [, CUBIC=value{-1 to 0}] [, MISSING=value] [, /PIVOT] ) ---------------------------------------------------------------------------------- ◈ Angle:顺时针旋转的角度值
|
|
1 2 3 4 5 6 7 8 9 | IDL> C = INDGEN( 3 , 3 )
IDL> C
0 1 2
3 4 5
6 7 8
IDL> ROT(C, 90 )
2 5 8
1 4 7
0 3 6
|
|
08 |
SORT |
|
排序,从小到大,返回索引数组。 ---------------------------------------------------------------------------------- Result = SORT(Array [, /L64] )
|
|
1 2 3 4 5 6 7 8 9 | IDL> A = [ 4 , 3 , 7 , 1 , 2 ]
IDL> SORT(A)
3 4 1 0 2
IDL> A[SORT(A)]
1 2 3 4 7
IDL> A[REVERSE(SORT(A))]
7 4 3 2 1
IDL> REVERSE(A[SORT(A)])
7 4 3 2 1
|
|
09 |
UNIQ |
|
相邻唯一值,返回索引数组。 ---------------------------------------------------------------------------------- Result = UNIQ( Array [, Index] ) ---------------------------------------------------------------------------------- ◈ Index:用于处理成递增、唯一的数组
|
|
1 2 3 4 5 6 7 8 9 | IDL> array = [ 1 , 2 , 2 , 5 , 6 , 6 , 5 ]
IDL> UNIQ(array)
0 2 3 5 6
IDL> array[UNIQ(array)]
1 2 5 6 5
IDL> UNIQ(array, SORT(array))
0 1 3 4
IDL> array[UNIQ(array, SORT(array))]
1 2 5 6
|
|
10 |
REFORM |
|
调整数组的维度,元素个数不变。 ---------------------------------------------------------------------------------- Result = REFORM( Array, D1[, ..., D8] [, /OVERWRITE] ) ---------------------------------------------------------------------------------- ◈ Di:维度调整,保证元素个数相同,否则无法实现 ◈ OVERWRITE:将返回的数组值赋值给 Array
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | IDL> A = INDGEN( 2 , 3 )
IDL> A
0 1
2 3
4 5
IDL> REFORM(A, 3 , 2 )
0 1 2
3 4 5
IDL> REFORM(A, 3 , 2 , / OVERWRITE)
0 1 2
3 4 5
IDL> A
0 1 2
3 4 5
|
|
11 |
REPLICATE_INPLACE |
|
更新一个数组中一部分或者全部为指定的数值。 ---------------------------------------------------------------------------------- REPLICATE_INPLACE, Array, Value [, D1, Loc1 [, D2, Range]] ---------------------------------------------------------------------------------- ◈ Value:欲更新的数值 ◈ D1:欲更新的维度,1 为行,2 为列 ◈ Loc1:坐标点所在行或列 ---------------------------------------------------------------------------------- 等效替换方法如下: Array[*] = Value:数列都赋值 Value Array[*, 1] = Value:整个第二行都赋值 Value Array[*, 2:4] = Value:整个第三行到第五行都赋值 Value
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | IDL> A = INDGEN( 3 , 3 )
IDL> A
0 1 2
3 4 5
6 7 8
IDL> REPLICATE_INPLACE, A, 4
IDL> A
4 4 4
4 4 4
4 4 4
IDL> A[ * ] = 5
IDL> A
5 5 5
5 5 5
5 5 5
IDL> A[ * , 2 ] = 0
IDL> A
5 5 5
5 5 5
0 0 0
IDL> REPLICATE_INPLACE, A, 4 , 1 , [ 1 , 1 ]
IDL> A
5 5 5
4 4 4
0 0 0
IDL> REPLICATE_INPLACE, A, 8 , 2 , [ 0 , 0 ]
IDL> a
8 5 5
8 4 4
8 0 0
|
|
12 |
WHERE |
|
返回符合条件的数组。 ---------------------------------------------------------------------------------- Result = WHERE( Array_Expression [, Count] [, COMPLEMENT=variable] [, /L64] [, NCOMPLEMENT=variable] [, /NULL] ) ---------------------------------------------------------------------------------- ◈ Array_Expression:数组表达式 ◈ Count:返回数组的元素个数 ◈ COMPLEMENT=variable:返回剩余数组中元素的索引数组 ◈ NCOMPLEMENT=variable:返回剩余数组中元素的个数
|
|
1 2 3 4 5 6 7 8 9 | IDL> A = INDGEN( 10 )
IDL> A
0 1 2 3 4 5 6 7 8 9
IDL> WHERE(A GT 5 , count, COMPLEMENT = c, NCOMPLEMENT = count_c)
6 7 8 9
IDL> c
0 1 2 3 4 5
IDL> count_c
6
|
|
13 |
SIZE |
|
返回值是数组,分别表示维度、列、行、类型、个数。 ---------------------------------------------------------------------------------- Result = SIZE( Expression [, /L64] [, /DIMENSIONS | , /FILE_LUN | , /FILE_OFFSET | , /N_DIMENSIONS | , /N_ELEMENTS | , /SNAME, | , /STRUCTURE | , /TNAME | , /TYPE] ) ---------------------------------------------------------------------------------- ◈ DIMENSIONS:列、行等 ◈ N_DIMENSIONS:维度 ◈ N_ELEMENTS:元素个数 ◈ TNAME:数据类型,文本型 ◈ TYPE:数据类型,数字码
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 | IDL> A = INDGEN( 5 , 5 )
IDL> SIZE(A)
2 5 5 2 25
IDL> SIZE(A, / N_ELEMENTS)
25
IDL> SIZE(A, / DIMENSIONS)
5 5
IDL> SIZE(A, / N_DIMENSIONS)
2
IDL> SIZE(A, / TYPE )
2
IDL> SIZE(A, / TNAME)
INT
|
|
14 |
INDGEN |
|
返回指定维度的数组。 ---------------------------------------------------------------------------------- Result = INDGEN(D1[, ..., D8] [, /BYTE | , /COMPLEX | , /DCOMPLEX | , /DOUBLE | , /FLOAT | , INCREMENT=value | , /L64 | , /LONG | , /STRING | , /UINT | , /UL64 | , /ULONG] [, START=value] [, TYPE=value] ) ---------------------------------------------------------------------------------- ◈ Di:数组维度定义 ◈ BYTE:创建 byte 数组 ◈ DOUBLE:创建 double 数组 ◈ FLOAT:创建 float 数组 ◈ INCREMENT=value:定义增量步长 ◈ START=value:开始整数设置,默认是 0 ◈ TYPE=value:数据类型数字码(SIZE)
|
|
1 2 3 4 5 6 7 8 | IDL> INDGEN( 5 , INCREMENT = 3 )
0 3 6 9 12
IDL> INDGEN( 5 , INCREMENT = 3 , START = 10 )
10 13 16 19 22
IDL> INDGEN( 5 , INCREMENT = 3 , START = 10 , TYPE = 4 )
10.000000 13.000000 16.000000 19.000000 22.000000
IDL> INDGEN( 5 , / FLOAT , START = 10 )
10.000000 11.000000 12.000000 13.000000 14.000000
|
|
15 |
FINDGEN & Others |
|
返回指定维度的数组(浮点型)。 ---------------------------------------------------------------------------------- Result = FINDGEN(D1 [, ..., D8] [, INCREMENT=value] [, START=value])
|
|
1 2 | IDL> FINDGEN( 5 , START = 1 )
1.0000000 2.0000000 3.0000000 4.0000000 5.0000000
|
|
|
BINDGEN:字节型 DINDGEN:双精度浮点型 LINDGEN:32位有符号长整型 L64INDGEN:64位有符号长整型 UINDGEN:16位无符号整形 SINDGEN:字符串
|
|
1 2 3 4 5 6 | IDL> SINDGEN( 5 , START = 5 )
5
6
7
8
9
|
|
16 |
INTARR & Others |
|
返回指定维度全是 0 的数组。 ---------------------------------------------------------------------------------- Result = INTARR( D1[, ..., D8] [, /NOZERO] )
|
|
1 2 3 4 | IDL> INTARR( 3 , 3 )
0 0 0
0 0 0
0 0 0
|
|
|
FLTARR:浮点型 BYTARR:字节型 DBLARR:双精度浮点型 LONARR:32位有符号长整型 LON64ARR:64位有符号长整型 UINTARR:16位无符号整形 STRARR:字符串
|
|
|
17 |
MAKE_ARRAY |
|
动态创建数组。 ---------------------------------------------------------------------------------- Result = MAKE_ARRAY ( [D1[, ..., D8]], DIMENSION=vector, INCREMENT=value, /INDEX, /NOZERO, SIZE=vector, START=value, TYPE=type_code, VALUE=value, /BOOLEAN, /BYTE, /COMPLEX, /DCOMPLEX, /DOUBLE, /FLOAT, /INTEGER, /L64, /LONG, /OBJ, /PTR, /STRING, /UINT, /UL64, /ULONG ) ---------------------------------------------------------------------------------- ◈ INCREMENT=value:增量步长 ◈ INDEX:等差增加 ◈ NOZERO:不出现0值,默认情况下是0值 ◈ START=value:开始的数值 ◈ TYPE=type_code:返回值的类型,0为Undefined、1为Byte、2为Int等 ◈ VALUE=value:设置固定值 ◈ BOOLEAN:设置一个布尔型数组
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | IDL> MAKE_ARRAY( 4 , 3 , VALUE = 5 , / INTEGER)
5 5 5 5
5 5 5 5
5 5 5 5
IDL> MAKE_ARRAY( 4 , 3 , / INDEX, / INTEGER)
0 1 2 3
4 5 6 7
8 9 10 11
IDL> MAKE_ARRAY( 4 , 3 , / INDEX, INCREMENT = 2 , / INTEGER)
0 2 4 6
8 10 12 14
16 18 20 22
IDL> MAKE_ARRAY( 4 , 3 , / INDEX, INCREMENT = 2 , START = 5 , / INTEGER)
5 7 9 11
13 15 17 19
21 23 25 27
|
|
|
|
|
|
|
|
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
2014-08-25 【146】ArcObjects类库索引