|  | 
 
| 
matlab读取网络数据的能力和python相比太弱了,python有很多开源工具包,功能非常强大。其实以前批量下载数据都是用python语言写的,但是现在因为工作需要每天都要用matlab,所以尝试用matlab写个小程序批量下载网络数据。要下载的数据网址是:
x
EDA365欢迎您登录!您需要 登录 才可以下载或查看,没有帐号?注册  7 o3 J6 M4 X  u$ ~' S$ f
 # d  F4 Y3 N, u+ Fhttp://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/godas/catalog.html7 [( y8 ~/ U! R9 R. c- v' _- ~; ?
 ! i% ]# B. Q( ^- k
 要下载的数据如下:pottmp.1980.nc到pottmp.2016.nc,共37个nc文件
 ' ^4 [0 N. E$ i1 a9 F' e+ V3 C& w- w, n+ `& K7 ]
 程序如下,核心函数是urlwrite8 k1 `. Z$ w& _. `  p) u5 S
 
 . a- ~8 H7 c+ V% T2 [filepath='D:用户目录Desktoppottmp';0 d4 Z1 R3 v* ]5 w6 s& H+ e
 mkdir(filepath); %在桌面创建文件夹pottmp
 * F, u1 L( i5 \1 i4 {# ^
 2 L6 R$ o: Y' S# ^4 y4 f5 Jfor i=1980:2016
 9 b+ W9 e1 L, m3 I* c4 k1 p8 QfullURL=['http://www.esrl.noaa.gov/psd/thredds/fileServer/Datasets/godas/pottmp.',num2str(i),'.nc'];%下载网址
 4 U' P. S" u: e5 ^% C: M" @4 mfilename=[filepath,'pottmp.',num2str(i),'.nc']; %保存的文件名/ t$ ?/ T( e0 q
 tic;8 R: i, j% c$ g, k# z9 d
 [f,status]=urlwrite(fullURL,filename);%下载命令$ F8 a( z4 Z+ J4 t5 u' {0 Y% r
 if status==14 s( e! j: ~' w
 t=toc;
 0 |% B( \( ~2 `. e; @" _    lst=dir(filename);
 - L( R0 _% n; [! K    xi=lst.bytes;2 g  g. w* ~: q
 disp(['pottmp.',num2str(i),'.nc','下载成功','文件大小为',num2str(xi/1024/1024),'M','  花费',num2str(t/60),'分钟']);( f' X8 \% |  z6 k7 _+ M
 else/ o) f5 _1 J) \+ W* ]. q/ h
 disp(['pottmp.',num2str(i),'.nc','下载失败']);
 / d4 L% f: R9 [" Pend8 o% g( v; n% v
 end* @! V. L, O' l- r7 a% \
 % |* ~% c0 o2 K3 B! y, G; x( d
 
 | 
 |