Это небольшая вещь, но уже некоторое время беспокоит меня, поэтому я подумал, что позволю начать разгадку толпы:)
У меня есть матрица с метками времени и соответствующее логическое значение (или 1/0), т.е.
of = [-inf 0 10 15 190 inf; 1 0 0 1 1 0]'
и другой вектор времени, например
t = 0:0.1:1e3;
или что-то еще, вы получите точку:)
Теперь, как мне (читай: вы) интерполировать / экстраполировать логическую информацию в of
, чтобы она соответствовала меткам времени в t
, но с интерполированной логикой, всегда принимающей последнее или текущее значение, а не будущее один?
Не знаю, имеет ли это смысл, но вот ожидаемый результат, полученный of
и t2
t2 = [0 5 14 16]
output = [0 0 10 15; 0 0 0 1]'
где первый столбец output
- это время of
, используемое при интерполяции. Если я использую interp1
и «ближайший» алгоритм, он даст
interp1(of(:,1), of, t2, 'nearest')
output = [0 10 15 15; 0 0 1 1]'
что не совсем то, что я хочу.