My dataset consists of a time vector (30min step) a vector of wind speeds and a vector of wind directions.
I find the cases when wind direction is, for example, nort-northeast using x=find(WD>0&WD<60
and then i use histogram(T.Hour(x),[0 2 4 6 8 10 12 14 16 18 20 22 24]) to derive to a histogram of absolute frequencies of the north-northeast wind in each of the 2hour bins.
How can i plot a histogram with the average wind speed of this specific wind in each 2hour interval?

 채택된 답변

José-Luis
José-Luis 2017년 8월 31일

0 개 추천

t1 = datetime(2016,6,1,0,30,0);
t2 = datetime(2017,5,31,23,30,0);
t = t1:minutes(30):t2;
wind_dir = randi(360,numel(t),1);
wind = rand(numel(t),1);
idx = wind_dir >= 320 & wind_dir <=360;
t_sub = t(idx);
wind_sub = wind(idx);
result = accumarray(hour(t_sub).' + 1, wind_sub,[],@mean);
bar(result)

댓글 수: 2

Dimitrios Bentis
Dimitrios Bentis 2017년 8월 31일
편집: Dimitrios Bentis 2017년 8월 31일
It works! thank you very much!!
is there a way to have the average speed of 2hour intervals (as in the histogram with the frequencies) and not the average speed of each hour?
Once again thank you for your valuable help and guidance.
result = accumarray(ceil((hour(t_sub)+1)./2).' , wind_sub,[],@mean);

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

José-Luis
José-Luis 2017년 8월 31일

0 개 추천

You could adapt a rose plot to your need. It is the "standard" way of showing wind direction distributions.

댓글 수: 5

Dimitrios Bentis
Dimitrios Bentis 2017년 8월 31일
This wouldn't work because i want an average wind speed (of the specific wind) per 2 hour interval.
So in the x axis i will have the time (with 2 hour intervals) and each bin (attached to a 2 hour interval) will show the average wind speed of that wind in that 2 hour interval. The y axis is of course the average wind speed.
José-Luis
José-Luis 2017년 8월 31일
I don't get it. You already have the average and you say you want to calculate it.
Please show some input data and expected output. As a minimum working example please.
Dimitrios Bentis
Dimitrios Bentis 2017년 8월 31일
What i have so farm is a histogram of absolute frequencies of occurance of a specific wind during each 2 hour interval (example below)
What i am trying to get is a similar histogram but with the average wind speed, of this specific wind, per 2hour interval. So instead of frequency in y axis i would like to have wind speed (but the average wind speed of each bin). I hope this is more helpfull.
Thanks
José-Luis
José-Luis 2017년 8월 31일
Hard to answer if we don't know what your data look like. How is it stored? How's it structured?
Dimitrios Bentis
Dimitrios Bentis 2017년 8월 31일
i have defined my time vector (t) as follows:
t1 = datetime(2016,6,1,0,30,0);
t2 = datetime(2017,5,31,23,30,0);
t = t1:minutes(30):t2;
the data that i have are 2 vectors corresponding to wind speed and direction (WS, WD)
then i used:
x=find(WD>=320&WD<=360);
to find when the desired wind occurs. then with
histogram(t.Hour(x),[0 2 4 6 8 10 12 14 16 18 20 22 24]);
i take the histogram i show above.
what i would like to plot now is the average wind speed of each the bins in the histogram above. In that histogram the bins represent frequency of occurrence.
Thank you for your fast responses.
*if something is unclear ask for clarification.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기

질문:

2017년 8월 31일

댓글:

2017년 8월 31일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by