size函数是IDL中常用的函数,其返回值是数据结构信息的一个数组
其语法是:
Result=SIZE( Expression [, /L64] [, /DIMENSIONS | , /FILE_LUN | , /FILE_OFFSET | , /N_DIMENSIONS | , /N_ELEMENTS | , /SNAME, | , /STRUCTURE | , /TNAME | , /TYPE] )
关键字有:(绿色部分是个人理解,如有错误,请指正)
Expression为标量、数组或者表达式
expression可以看作一个标识符,一个数组名字;[, /L64]可以看作一个数组中设置的元素个数,这里是长64位的。总的含义相当于是a[5](一个数组名+设置的5个元素个数)
DIMENSIONS设定函数只返回每维大小
返回的值有n个代表该数据是n维,然后第1个到第n个值分别是每一维的大小
如:500,600,700
代表该数据是三维数据,第一维大小是500,第二维大小是600,第三维大小是700
FILE_LUN:LUN的全称是Logical Unit Number,也就是逻辑单元号,其主要作用是为了给相连的服务器分配逻辑单元号(LUN)(可以不看)
FILE_OFFSET:文件偏移量,文件中的地址与内存中表示不同,它是用偏移量(File offset)来表示的(可以不看)
N_DIMENSIONS设定函数只返回数据总的维数
如:0——常量或者变量未定义
1——一维
2——二维....
N_ELEMENTS设定函数只返回元素数目
相当于是该数据总的元素个数,包括所有维的,大概是所有维度的元素个数相乘的结果(结果是相近,并不一定准确,因为不是所有维上都能排满元素)
SNAME:结构体名(可以不看)
STRUCTURE:结构体(可以不看)
TNAME设定函数只返回数据类型名称
就是数据类型
TYPE设定函数只返回数据类型的代码
就是数据类型与之对应的数字
类型代码,0:未定义,1:字节型,2:整型,3:长整型,4:浮点...
输出顺序:
第一个:N_DIMENSIONS
第二个到第N_dims+1个: DIMENSIONS
(有n维输出n个数,只有一维就是一个数)
倒数第二个:TYPE
倒数第一个:N_ELEMENTS
使用方法:
注:文章开头红色字体标注了size函数返回的是一个数组,所以我们可以像使用数组一样使用它
例:使用的IDL
arr=[[1,2,3],[4,5,6],[7,8,9]]
l=size(arr)
print,l
2:arr是一个二维数据
3:第一维,也就是列,有三个数
3:第二维,也就是行,有三个数
2:数据类型的对应的数字是2,2是整型
9:arr一共有9个数
arr=[[1,2,3],[4,5,6],[7,8,9]]
l=size(arr)
b=l[0]
c=l[4]
print,b
print,c
见这一篇博文,写得很详细:IDL size函数_小葱拌豆腐-CSDN博客_idl size函数