Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

从 Web 服务下载数据

以下示例说明如何使用 webread 函数从 Web 服务下载数据。世界银行通过世界银行气候数据 API 提供各种气候数据。调用此 API 将返回 JSON 格式的数据。webread 则将 JSON 对象转换为方便在 MATLAB® 中进行分析的结构体。

使用 webread 将美国年平均温度读入一个结构体数组。

api = 'http://climatedataapi.worldbank.org/climateweb/rest/v1/';
url = [api 'country/cru/tas/year/USA'];
S = webread(url)
S = 

112x1 struct array with fields:

    year
    data

webread 将该数据转换为一个包含 112 个元素的结构体数组。每个结构体包含 1901 年到 2012 年期间一个给定年份的温度。

S(1)
ans = 

    year: 1901
    data: 6.6187
S(112)
ans = 

    year: 2012
    data: 7.9395

绘制年平均温度图。将温度和年份转换为数值数组。将年份转换为日期时间对象以方便绘图,并将温度转换为华氏度。

temps = [S.data];
temps = 9/5 * temps + 32;
years = [S.year];
yearstoplot = datetime(years,1,1);
figure
plot(yearstoplot, temps);
title('USA Average Temperature 1901-2012')
xlabel('Year')
ylabel('Temperature (^{\circ}F)')
xmin = datetime(1899,1,1);
xmax = datetime(2014,1,1);
xlim([xmin xmax])

在图上叠加绘制温度的最小二乘拟合线。

p = polyfit(years,temps,1);
ptemps = polyval(p,years);
deltat = p(1);
hold on
fl = plot(yearstoplot, ptemps);
xlim([xmin xmax])
title('USA Average Temperature Trend 1901-2012')
xlabel('Year')
ylabel('Temperature (^{\circ}F)')
deltat = num2str(10.0*deltat);
legend(fl,['Least Squares Fit, ', deltat, '^{\circ}F/decade'])
hold off

世界银行提供的 API 和数据:气候数据 API。(请参阅世界银行:气候数据 API 以了解有关 API 的更多信息;并参阅世界银行:使用条款。)