2014-09-03 3 views
0

У меня есть набор данных x, y и z (каждая из них является матрицей 3000 на 1), и я хотел бы интерполировать эти данные, чтобы иметь набор значений для высоты z на равномерно расположенных x и y. Я предполагаю, что мне нужно сшить сетку наборов данных x и y, но я не знаю, как интерполировать данные z. Точки данных - это уникальные вершины, взятые из файла STL, и поэтому я хочу сгладить полученную поверхность.Интерполяция данных Matlab 3D

Любая помощь с оценкой,

Tom.

+0

Спасибо, Ive попытался использовать interp3 и создал значения xi yi, используя meshgrid (я думаю). Im теперь получаю ошибку, говоря об ошибке с использованием griddedInterpolant Режимы сетки не строго монотонны. Некоторые значения в одном столбце одинаковы, но каждая строка (полная точка данных x y z) уникальна. – tomlj

ответ

0

у вас есть функция MatLab interp2

, то ваш код будет цзы = interp2 (х, у, г, хи уг);

вы можете создать равномерно разнесенных хх и уг с помощью защитной сетки

хх и уг будет значение х и у, в которой вы будете делать интерполяцию, они находятся на квадратной форме. Например, если вы хотите интерполировать при xi = 1 2 3 и yi = 4 5, то

xi будет выглядеть как [1 2 3; 1 2 3]

и yi, [4 4 4; 5 5 5]

надеюсь, что это поможет!

+0

Пожалуйста, объясните, что такое 'xi' и' yi'. ОП может не знать, что это такое. – rayryeng

+0

Вы имеете в виду interp2 во второй строке ответа? – fang

+0

да interp2 ... interp3 также существует в matlab, а также интерн! но здесь, это inter2, извините за ошибку, я отредактировал ответ! –

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