⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 boost_array.pro

📁 basic median filter simulation
💻 PRO
字号:
	PRO BOOST_ARRAY, DESTINATION, APPEND;+; NAME:;	BOOST_ARRAY; PURPOSE:;	Append one array onto a destination array; EXPLANATION:;	Add array APPEND to array DESTINATION, allowing the dimensions of;	DESTINATION to adjust to accommodate it.  If both input arrays have the;	same number of dimensions, then the output array will have one;	additional dimension.  Otherwise, the last dimension of DESTINATION;	will be incremented by one.; CATEGORY:;	Utility; CALLING SEQUENCE:;	BOOST_ARRAY, DESTINATION, APPEND; INPUT:;	DESTINATION	= Array to be expanded.;	APPEND		= Array to append to DESTINATION.; OUTPUTS:;	DESTINATION	= Expanded output array.; RESTRICTIONS:;	DESTINATION and APPEND have to be either both of type string or both of;	numerical types.;;	APPEND cannot have more dimensions than DESTINATION.;; MODIFICATION HISTOBY:;	Written Aug'88 (DMZ, ARC);	Modified Sep'89 to handle byte arrays (DMZ);	Modifed to version 2, Paul Hick (ARC), Feb 1991;	Removed restriction to 2D arrays, William Thompson (ARC), Feb 1992.;	Converted to IDL V5.0   W. Landsman   September 1997;-;	ON_ERROR, 2			;On error, return to caller;;  Check the number of parameters.;	IF N_PARAMS() NE 2 THEN MESSAGE,	$		'Syntax:  BOOST_ARRAY, DESTINATION, APPEND';;  Make sure APPEND is defined.;	IF N_ELEMENTS(APPEND) EQ 0 THEN MESSAGE,	$		'Array to be appended (APPEND) not defined';;  If DESTINATION is not defined, then set it equal to APPEND.;	IF N_ELEMENTS(DESTINATION) EQ 0 THEN BEGIN		DESTINATION = APPEND		RETURN	ENDIF;;  Get the array types and dimensions of DESTINATION and APPEND.;	SD = SIZE(DESTINATION)	SA = SIZE(APPEND)	D_NDIM = SD[0]	A_NDIM = SA[0]	IF D_NDIM EQ 0 THEN D_DIM = 1 ELSE D_DIM = SD[1:D_NDIM]	IF A_NDIM EQ 0 THEN A_DIM = 1 ELSE A_DIM = SA[1:A_NDIM]	D_TYPE = SD[N_ELEMENTS(SD)-2]	A_TYPE = SA[N_ELEMENTS(SA)-2];;  Treat scalars as one-dimensional arrays.;	D_NDIM = D_NDIM > 1	A_NDIM = A_NDIM > 1; ;  Check to see if both arrays are of type string or numeric.;	IF D_TYPE EQ 7 THEN D_STRING = 1  ELSE D_STRING = 0	IF A_TYPE EQ 7 THEN A_STRING = 1  ELSE A_STRING = 0	IF D_STRING NE A_STRING THEN MESSAGE,	$		'Data arrays should be either both string or both non-string';;  Calculate the number of dimensions in the output array.  If both arrays have;  the same number of dimensions, then create a new array with an extra;  dimension of two.  Otherwise, make sure that DESTINATION has more dimensions;  than APPEND.;	IF D_NDIM EQ A_NDIM THEN BEGIN		R_DIM = [D_DIM > A_DIM, 2]	END ELSE IF D_NDIM LT A_NDIM THEN BEGIN		MESSAGE,'APPEND has more dimensions than DESTINATION';;  Otherwise, merge the dimensions of DESTINATION and APPEND, and add one to;  the final dimension.;	END ELSE BEGIN		R_DIM = D_DIM		FOR I = 0,A_NDIM-1 DO R_DIM[I] = D_DIM[I] > A_DIM[I]		R_DIM[D_NDIM-1] = R_DIM[D_NDIM-1] + 1	ENDELSE;;  Create the output array with the correct number of elements, and the greater;  of the types of DESTINATION and APPEND.;	OUTPUT = MAKE_ARRAY(DIMENSION=R_DIM, TYPE=(D_TYPE > A_TYPE));;  Store DESTINATION in the output array.;	R_NDIM = N_ELEMENTS(R_DIM)	CASE R_NDIM OF		2:  OUTPUT[0,0] = DESTINATION		3:  OUTPUT[0,0,0] = DESTINATION		4:  OUTPUT[0,0,0,0] = DESTINATION		5:  OUTPUT[0,0,0,0,0] = DESTINATION		6:  OUTPUT[0,0,0,0,0,0] = DESTINATION		7:  OUTPUT[0,0,0,0,0,0,0] = DESTINATION	ENDCASE;;  Add APPEND at the end.;	LAST = R_DIM[R_NDIM-1] - 1	CASE R_NDIM OF		2:  OUTPUT[0,LAST] = APPEND		3:  OUTPUT[0,0,LAST] = APPEND		4:  OUTPUT[0,0,0,LAST] = APPEND		5:  OUTPUT[0,0,0,0,LAST] = APPEND		6:  OUTPUT[0,0,0,0,0,LAST] = APPEND		7:  OUTPUT[0,0,0,0,0,0,LAST] = APPEND	ENDCASE;;  Replace DESTINATION with OUTPUT, and return.;	DESTINATION = OUTPUT	RETURN	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -