查看“数组”的源代码
←
数组
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
==数组== * REFORM :数组变形,比如data是读入的二维数组,data的第一列可以用 A=reform(data[1,*]) ::data[1,*]仍然是个二维数组,reform在默认的情况下将这其变为一维数组 * rotate :可以把数组旋转后组成矩阵,类似于列操作。 a=indgen(10) b=indgen(10) c=[rotate(a,1),rotate(b,10] * reverse :数组反向 :例:数组降序排列,结合sort(默认升序) PRINT, 'Elements of A in descending order: ', A[REVERSE(SORT(A))] * 多维数组的位置 :用array_indices array = RANDOMU(seed, 10, 10) mx = MAX(array, location) ind=array_indices(array,location) print, ind, array[ind[0],ind[1]], format = '(%"Value at [%d, %d] is %f")' IDL prints: Value at [3, 6] is 0.973381 * 数组随机打乱(shuffle) Arr_S=arr[sort(randomu(seed,N_elements(arr))] ==结构== *结构很容易增加一个tag,比如 A= {tag1:0.,tag2:'Name'} B=create_struct(A,'tag3',1L) 但是如果A是结构数组了,就不能再这样操作。 结果数组经常被用来读入数据文件,如果该数据文件加上一列数据,如何较方便的操作。 :一种方法如下: A= {tag1:0.,tag2:'Name'} B= {tag1:1.,tag2:'Name2',tag3:10L} A2= replicate(A,10) B2 = replicate(B,10) struct_assign,A,B ;把A的数值付给B print,B ;可以看到B的前两列已经变成A的数值,但B的第三列被充0,所以这时候可以再给B.tag3赋值。 :还有一种方法,但没上面那么直观 str={a: 0l, b: ''} str_arr=REPLICATE(str,10) ref_str = reform_struct(str_arr, /tag_array, 10) ref_str = create_struct(ref_str, 'c' ,make_array(10)) help, ref_str, /str 还有一共jjadd_tag的程序(http://astro.berkeley.edu/~johnjohn/idl.html#JJADD_TAG) IDL> struct = {a: 0., b: 'blah'} IDL> a=replicate(struct,2) IDL> c=jjadd_tag(a,'new',0b)
返回至“
数组
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
社群首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息