time series with time lags

4 Ansichten (letzte 30 Tage)
YH
YH am 22 Sep. 2020
Beantwortet: Ameer Hamza am 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 Kommentar
Khaled Hamed
Khaled Hamed am 22 Sep. 2020
out(i,:) = sl(idx(i)-3:idx(i)+3)';

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Ameer Hamza
Ameer Hamza am 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{:}])

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by