Calculating trend rate of change

31 visualizzazioni (ultimi 30 giorni)
Maja Zdulska
Maja Zdulska il 26 Gen 2021
Commentato: Maja Zdulska il 26 Gen 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);

Risposta accettata

Bart Kieviet
Bart Kieviet il 26 Gen 2021
Modificato: Bart Kieviet il 26 Gen 2021
I guess you mean the derivative? It's the function
diff
More on this function here.
  3 Commenti
Bart Kieviet
Bart Kieviet il 26 Gen 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 il 26 Gen 2021
Ah, I wasn't sure whether I could just do it like that. Thanks a lot!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Preprocessing Data in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by