“数组”的版本间差异

来自Shiyin's note
跳到导航 跳到搜索
无编辑摘要
第1行: 第1行:
==数组==
==数组==
* REFORM
* REFORM 数组变形
::将数组变为制定的维数
:数组变形,比如data是读入的二维数组,data的第一列可以用 A=reform(data[1,*])
A=indgen(20), B=reform(A,2,10)
::data[1,*]仍然是个二维数组,reform在默认的情况下将这其变为一维数组
::reform在默认(无输入参数)的情况下将数组变为一维
A=reform(data[1,*])



* rotate
* rotate

2013年10月21日 (一) 06:08的版本

数组

  • REFORM 数组变形
将数组变为制定的维数
 A=indgen(20), B=reform(A,2,10) 
reform在默认(无输入参数)的情况下将数组变为一维
 A=reform(data[1,*])


  • 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))]
  • 扩维
fan程序(http://astro.berkeley.edu/~johnjohn/idl.html#FAN )
IDL>print,fan(indgen(3),2)
IDL>print,fan(indgen(3),2,/trans)
  • 多维数组的位置
用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))]