Интерполяция выбора 2-D в 3-D сетках

В этом примере показано, как уменьшить размерность массивов плоскостей сетки 3-D решить 2-D задачу интерполяции.

В некоторых областях применения может потребоваться интерполяция нижней размерной плоскости сетки; для примера, интерполяция плоскости 3-D сетки. При извлечении плоскости сетки из 3-D сетки получившиеся массивы могут быть в 3-D формате. Можно использовать squeeze функция для уменьшения размерности массивов сеточных плоскостей, чтобы решить проблему в 2-D.

Создайте 3-D матрицу образцов и соответствующие значения.

[X,Y,Z] = ndgrid(1:5);
V = X.^2 + Y.^2 +Z;

Выберите 2-D выборку из сетки. В этом случае - третий столбец выборок.

x = X(:,3,:);
z = Z(:,3,:);
v = V(:,3,:);

Плоскость 2-D происходит в Y=3, так что Y размерность был фиксируема. x, z, и v являются массивами 5 на 1 на 5. Перед оценкой интерполяции необходимо уменьшить их до 2-D массивов.

Уменьшите x, z, и v вплоть до 2-D массивов с помощью squeeze функция.

x = squeeze(x);
z = squeeze(z);
v = squeeze(v);

Интерполируйте срез 2-D по более мелкой сетке точек запроса.

[Xq,Zq] = ndgrid(1:0.5:5);
Vq = interpn(x,z,v,Xq,Zq);

Постройте график результатов.

figure
surf(Xq,Zq,Vq);
xlabel('Xq');
ylabel('Zq');
zlabel('Vq');

Figure contains an axes. The axes contains an object of type surface.

См. также

|

Похожие темы