Скажем, у вас есть набор точек, определенных координатами в x
и y
и соответствующими значениями температуры в t
, так что температура в (x(i)
, y(i)
) равна t(i)
.Для каждой точки нет структуры для местоположений.
Вы хотите найти температуры в новых местоположениях, заданные как xq
, yq
.Они могут или сформировать сетку или быть неструктурированными.Давайте определим сетку:
[xq, yq] = meshgrid(linspace(0,1,100), linspace(-0.5,0.5,100));
В этом примере сетки у нас есть 100 выборок в диапазоне от 0 до 1 по оси x и 100 выборок в диапазоне от -0,5 до 0,5 по оси y, что в общей сложностииз 10 тыс. точек.
Функция griddata
будет интерполировать входные данные в новых местоположениях:
tq = griddata(x,y,t, xq,yq);
tq
теперь имеет ту же форму, что иxq
и yq
, то есть это матрица 100x100.Чтобы превратить это в новый список, такой как оригинал, просто измените его на вектор.tq = tq(:)
делает это.Кроме того, перед вызовом griddata
:
xq = xq(:);
yq = yq(:);
tq = griddata(x,y,t, xq,yq);
измените форму массивов местоположения запроса. Теперь tq
- это вектор-столбец.