IDL中将1维或2维数组写入文件dlmwrite

时间:2022-06-19 13:31:39
PRO dlmwrite,FileName,DoubleArray,HeadStr=HeadStr
;================================================
;IDL中将1维或2维数组写入文件,模仿matlab的命令格式
;用法IDL>dlmwrite,FileName,DoubleArray
;用法IDL>dlmwrite,FileName,HeadStr=StrArray
;DoubleArray可以是1维或2维数组
;HeadStr是1维字符串数组,每个元素的长度不能大于12个字符
;================================================
;Rumswell(USTC & AIAI)
;Email:rumswell@qq.com
;2011-03-29
;================================================
SDA=Size(DoubleArray)
;-----------------------------------------
if (SDA[0] eq 1) then begin
Row=SDA[1]
OPENW,Unit,FileName,/GET_LUN
IF KEYWORD_SET(HeadStr) AND (size(HeadStr,/type) EQ 7) THEN BEGIN
PRINTF,Unit,HeadStr
ENDIF
FOR i=0,Row-1 DO BEGIN
PRINTF,Unit,DoubleArray[i]
ENDFOR
FREE_LUN, Unit
endif
;-----------------------------------------
if (SDA[0] eq 2) then begin
Column=SDA[1]
Row=SDA[2]
LineWidth=Column*20
OPENW,Unit,FileName,WIDTH=LineWidth,/GET_LUN
IF KEYWORD_SET(HeadStr) AND (size(HeadStr,/type) EQ 7) THEN BEGIN
PRINTF,Unit,HeadStr,format='(99A13)'
ENDIF
FOR i=0,Row-1 DO BEGIN
PRINTF,Unit,DoubleArray[*,i]
ENDFOR
FREE_LUN, Unit
endif
;-----------------------------------------
end