2016-10-14 3 views
0

Я пытаюсь сделать интерполяцию. У меня есть матрица Y с 2*1000. Первая строка - Y значений в момент времени 1 сек, а вторая строка - Y значений в момент времени 3 секунд. Я пытаюсь получить Y значения во время 1.7 секИспользование интерполяции между двумя строками

Например,

at time 1 sec Y(1,:)=[1 3 4 6 8 1 4 2 9]  and X=[1 2 3 4 5 6 7 8 9] 
at time 3 sec Y(2,:)=[2 6 8 1 9 2 7 8 2]  and X=[1 2 3 4 5 6 7 8 9] 
at time 4 sec Y(3,:)=[21 6 81 1 9 12 7 28 2] and X=[1 2 3 4 5 6 7 8 9] 

Я пытаюсь интерполировать по времени. Я использовал

Y_1_7 = interp1(Y(1,:),Y(2,:),1.7); 

Это не работает

Благодарности

ответ

1

https://www.mathworks.com/help/matlab/ref/interp1.html?requestedDomain=www.mathworks.com кажется полезным здесь

VQ = interp1 (х, v, хд) возвращает интерполированное значения 1-D функция в определенных точках запроса с использованием линейной интерполяции.

Вектор х содержит точек выборки и v содержит соответствующих значений, у (х). Вектор xq содержит координаты точек запроса. Если у вас есть несколько наборов данных, которые отбираются в одних и тех же координатах точки, вы можете передать v в виде массива. Каждый столбец массива v содержит другой набор значений из 1-D выборок.

Так оно и должно быть что-то вроде:

Y_1_7 = interp1([1 3 4], Y, 1.7) 
+0

Что делает Y. * синтаксис здесь без второго аргумента делать? –

+0

Упс. Я имел в виду Y. ' Он переносит матрицу Y. Это то же самое, что и Y ', за исключением мнимых чисел. В этом случае Y 'трансформирует, затем сопрягает все числа, а Y.' просто переносит их. – bwall

+0

Вы нарушили свой код с помощью этого последнего изменения –

Смежные вопросы