数据分析1一个月31天三城市气温Word格式.docx
《数据分析1一个月31天三城市气温Word格式.docx》由会员分享,可在线阅读,更多相关《数据分析1一个月31天三城市气温Word格式.docx(9页珍藏版)》请在冰豆网上搜索。
81020
19718
12718
141019
11817
9723
8819
15818
8920
10717
12722
9819
12821
12820
10917
131218
91020
10622
14721
12522
13718
151023
131124
121222
每一行包含了给定一天的高温;
每一列包含不同城市的高温。
为了使数据可视,把它绘图:
d=1:
31;
%numberthedaysofthemonth
plot(d,temps)
xlabel('
DayofMonth'
),ylabel('
Celsius'
)
title('
DailyHighTemperaturesinThreeCities'
(见图9.1)
图9.1三个城市的每日高温
上面的plot命令也说明了plot命令用法的另一种形式。
变量d是一个长度为31的向量,而temps是一个31×
3矩阵。
给定这些数据,plot命令绘出了temps对每一列d的曲线。
绘图在第7和8章进一步讨论。
为了说明MATLAB数据分析的一些功能,根据上面温度数据考虑以下命令。
avg_temp=mean(temps)
avg_temp=
11.96778.225819.8710
表明第三个城市有最高平均温度。
这里MATLAB分别地找出了各列的平均值。
avg_avg=mean(avg_temp)
avg_avg=
13.3548
找出了三个城市的总平均温度。
当输入到数据分析函数是行或列向量时,MATLAB仅对向量执行运算,返回一个标量。
考虑从各城市的均值求每日偏差的问题。
即必须从temps的i列中减去avg_temp(i)。
我们不能仅仅用以下的语句
temps-avg_temp
?
Errorusing==>
-
Matrixdimensionsmustagree.
因为这个操作不是一个已定义的数组操作(temps是31×
3和avg_temp是1×
3)。
或许最直接的方法是使用For循环。
fori=1:
3
tdev(:
i)=temps(:
i)-avg_temp(i);
end
tdev
tdev=
0.0323-0.2258-1.8710
3.03230.77422.1290
0.0323-3.2258-0.8710
2.0323-0.22583.1290
0.0323-2.22582.1290
-0.96770.7742-0.8710
3.03230.7742-4.8710
-3.96771.77420.1290
7.0323-1.2258-1.8710
0.0323-1.2258-1.8710
2.03231.7742-0.8710
-0.9677-0.2258-2.8710
-2.9677-1.22583.1290
-3.9677-0.2258-0.8710
3.0323-0.2258-1.8710
-3.96770.77420.1290
-1.9677-1.2258-2.8710
0.0323-1.22582.1290
-2.9677-0.2258-0.8710
0.0323-0.22581.1290
0.0323-0.22580.1290
-1.96770.7742-2.8710
1.03233.7742-1.8710
-2.96771.77420.1290
-1.9677-2.22582.1290
2.0323-1.22581.1290
0.0323-3.22582.1290
1.0323-1.2258-1.8710
3.03231.77423.1290
1.03232.77424.1290
0.03233.77422.1290
虽然使用上面的方法有效,但比使用MATLAB的数组操作功能要慢。
复制avg_temp,使得它与temps有同样的大小,然后再做减法,这样就快得多。
tdev=temps-avg_temp(ones(31,1),:
这里avg_temp(ones(31,1),:
)复制avg_temp的第一行(且仅)31次,创建了一个31×
3的矩阵,其第i列是avg_temp(i)。
max_temp=max(temps)
max_temp=
191224
找出了每个城市一个月的最高温度。
[max_temp,x]=max(temps)
x=
92330
找出了每个城市的最高温度和出现最高温度的行下标x。
对于这个例子,当发生最高温度时,x辨认了月中的日期。
min_temp=min(temps)
min_temp=
8515
找出了各城市一个月的最低温度。
[min_temp,n]=min(temps)
n=
837
找出了每个城市的最低温度和出现最低温度时行下标n。
对于这个例子,当发生最低温度时,n辨认月中的日期。
s_dev=std(temps)
s_dev=
2.50981.76462.2322
找出temps的标准偏差。
daily_change=diff(temps)
daily_change=
314
-3-4-3
234
-2-2-1
-13-3
40-4
-715
11-3-2
-700
231
-3-2-2
-2-16
-11-4
70-1
-712
2-2-3
205
-31-3
302
00-1
-21-3
331
-4-22
1-42
41-1
-2-21
12-4
235
-211
-11-2
计算每日高温之间的偏差,它描述了逐天日高温的变化有多大。
例如,daily_change的第一行是每月的第一天和第二天之间的日温度变化量