Matlab数据:查找图中每列的平均值

时间:2013-02-26 12:57:51

标签: matlab plot average

我是使用MATLAB的初学者。我的数据有17列显示7年的波高和风数据。 前4列分别是年份(2005-2011),月份,日期和小时。 接下来的列是相应的录音。

我在这里找到了一个有用的脚本来绘制这些列。

fid = fopen('wam1.txt','r'); 
C = textscan(fid,'%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f','headerlines',4,'commentstyle','--');
fclose(fid);
x = C{1}; y1 = C{5}; y2 = C{3};
plot(x,y1)

现在,图表由(例如)Y轴上的风速和X轴上的年份(2005-2011)组成。而且我必须找到每年的平均风速。 任何人都可以帮助我。

感谢。

2 个答案:

答案 0 :(得分:1)

当您似乎绘制y1的值时,解决方案将非常简单。

mean(y1) 

会给你y1的平均值。

如果您希望按年份执行此操作,则可以循环使用这些年份并将均值存储在名为result的向量中。

count = 0;
for t = unique(x)
   count = count+1;
   result(count) = mean(y1(x==t)); % Or just result(t)
end
result

答案 1 :(得分:1)

如果每年有相同数量的值,并且它们是有序的(例如,2005年的所有值,那么2006年的所有值......)您可以使用重塑:

y1 = reshape(y1,365,7); mean(y1)

否则,您可以计算每年:

mean(y1(x==2005))