- 积分
- 3638
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-10-21
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
csv是个有趣的格式,既可以用记事本打开,又可以用表格打开,用起来比较灵活。
为了实现将数组按csv格式输出,我写了以下“过程”
调用格式:data_to_csv,数组变量,csv文件
举例:
csvfile='C:\Users\Administrator\Desktop\999.csv'
data_to_csv,indgen(4,5),csvfile
结果如上图。
--------------源代码如下-------------------
;更新时间:2019.7.1
;该程序用于将数据按csv格式输出
;如果有同名文件,会通知,然后续写(可修改append关键字)
;函数中的输入、计算过程和输出都是:最大8位有效数字
;csvfile是输出的全文件名(路径+文件名+后缀),x是需要输出的变量
;x可以是一个数(0维数组),1维数组(向量),2维数组
pro data_to_csv,x,csvfile
;把x转为双精度浮点,如果想整型输出,可以改动
x=double(x)
sizex=size(x)
;检查是否存在同名文件,如果有就弹窗通知,但程序还是会继续执行
if(file_test(csvfile) eq 1)then begin
warning=dialog_message('file with same name exists!')
endif
;如果x是向量
if(sizex[0] eq 1)then begin
B=strjoin(strtrim(string(x),2),',')
openw,lun,csvfile,/get_lun,/append
printf,lun,B
close,/all
end
;如果x是二维数组
if(sizex[0] eq 2)then begin
for i=0,sizex[2]-1 do begin
a=x[*,i]
B=strjoin(strtrim(string(a),2),',')
openw,lun,csvfile,/get_lun,/append
printf,lun,B
close,/all
endfor
endif
;如果只有一个值
if(sizex[0] eq 0)then begin
B=strtrim(string(x),2)
openw,lun,csvfile,/get_lun,/append
printf,lun,B
close,/all
endif
;x不是向量,又不是二维数组,也不是单独的数字,就报错
if(sizex[0] ne 1 and sizex[0] ne 2 and sizex[0] ne 0)then begin
warning=dialog_message('error!')
endif
end
|
|