time series with time lags

4 vues (au cours des 30 derniers jours)
YH
YH le 22 Sep 2020
Hallo every one,
I have an array called sl(24000*1) which represents daily sea level measurements.
I have another array idx(34*1) represents the indexes of the annual maximum of a river discharg near the above mentioned gauge station
now I have to make a new time series of sea levels corresponding to the annual maximum of the river discharge time series
with time lags (-3 to +3) days, that means for each idx, i should find the coressponding value in sl with a range of -3 to +3 days.
for i = 1: size(idx,1)
out = sl(idx(i)-3:idx(i)+3);
end
this gives me only one value with its time lags
can some one tell me where exactly I am doing wrong?
Thanks in Advance!
  1 commentaire
Khaled Hamed
Khaled Hamed le 22 Sep 2020
out(i,:) = sl(idx(i)-3:idx(i)+3)';

Connectez-vous pour commenter.

Réponse acceptée

Ameer Hamza
Ameer Hamza le 22 Sep 2020
This will create a single vector with all the required values
idx_all = arrayfun(@(x) {x-3:x+3}, idx);
out = sl([idx_all{:}])

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB 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