0

我是使用 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)组成。我必须找到每年的平均风速。谁能帮帮我。

谢谢。

4

2 回答 2

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
于 2013-02-26T13:08:52.493 回答
1

如果每年有相同数量的值,并且它们是有序的(例如,首先是 2005 年的所有值,然后是 2006 年的所有值......),您可以使用 reshape:

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

否则,您可以计算每年:

mean(y1(x==2005))
于 2013-02-26T13:26:23.207 回答