Calculating trend rate of change
34 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Maja Zdulska
am 26 Jan. 2021
Kommentiert: Maja Zdulska
am 26 Jan. 2021
Hi everyone,
I'm currently analysing a time series of data (see code below). I've fitted a trendline into it but I would like to calculate its rate of change per year. Any ideas how can it be done?
Thanks in advance,
Maja
%script to plot year-by-year data points for the full basin, fit a
%trendline and test it for significance with Mann-Whitney U test
%load data
data=readtable('Mydata.csv');
%define variables
year=data{:,1};
wind=data{:,8};
figure (1)
plot(year,wind,'b','LineWidth',1.2)
xlabel('\bf Year')
ylabel('\bf Wind speed (m/s)')
grid on
hold on
%fit a trendline to the data
wind_coeff=polyfit(year,wind,1);
wind_trend=polyval(wind_coeff,year);
plot(year,wind_trend,'r--','LineWidth',1.2);
%this bit tests the trend for significance with Mann-Whitney
%if p is very small and h=1, trend is significant
[p,h]=ranksum(year,netwind);
0 Kommentare
Akzeptierte Antwort
Bart Kieviet
am 26 Jan. 2021
Bearbeitet: Bart Kieviet
am 26 Jan. 2021
3 Kommentare
Bart Kieviet
am 26 Jan. 2021
If I understand correctly you have a year-by-year numbers, so say:
year = [2010, 2011, 2012, 2013];
wind = [10, 15, 5, 16];
if I run diff, I get:
df = diff(wind); % [5, -10, 11]
I could use mean to get the average:
mean( df ); % 2
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!