У меня есть данные в узлах трехмерного треугольника, и мне нужно интерполировать, чтобы получить данные внутри треугольника.Линейная интерполяция внутри трехмерного треугольника
вот что я пытался сделать:
x=[0,1,0];
y=[1,0,1];
z=[0,2,-1];
[X,Y,Z]=meshgrid(x,y,z);
v=[2,5,-1];
xs=linspace(0,1,.1);
ys=linspace(0,1,.1);
zs=linspace(-1,2,.1);
Vs = interp3(X,Y,Z,v,xs,ys,zs,'linear');
я получаю сообщение об ошибке: Количество входных координат массивов не равно числу измерений (NDIMS) этих массивов.
что не так?
X Y и Z должны быть сеточные с помощью meshgrid? Xs Ys Zs должны быть векторами? – user2600366
X, Y и Z также могут быть векторами (документация Matlab -> interp3 -> входные аргументы). Таким образом, X (1) является координатой x вашего первого узла, X (2) вашего второго узла, .... То же самое касается Y и Z. – StefanM
То же самое для Xs, Ys и Zs они также могут быть векторами. – StefanM