Effacer les filtres
Effacer les filtres

Calculating trend rate of change

14 vues (au cours des 30 derniers jours)
Maja Zdulska
Maja Zdulska le 26 Jan 2021
Commenté : Maja Zdulska le 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);

Réponse acceptée

Bart Kieviet
Bart Kieviet le 26 Jan 2021
Modifié(e) : Bart Kieviet le 26 Jan 2021
I guess you mean the derivative? It's the function
diff
More on this function here.
  3 commentaires
Bart Kieviet
Bart Kieviet le 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
Maja Zdulska
Maja Zdulska le 26 Jan 2021
Ah, I wasn't sure whether I could just do it like that. Thanks a lot!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Preprocessing Data dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by