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!

 Réponse acceptée

Ameer Hamza
Ameer Hamza le 22 Sep 2020

1 vote

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 Mathematics dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by