查看“数组”的源代码
←
数组
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
* 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
返回至“
数组
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
社群首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息