从秩序重要的未分类2D点阵列插值轨迹

时间:2014-02-11 12:39:47

标签: arrays matlab interpolation

我需要一种从Nx2点阵列获得Lx2轨迹的方法,即将这些点连接成单个轨迹的方法(例如,从5x2点阵列创建10000x2点阵列)。我尝试过使用interp1interp2,但要么我不完全理解他们,要么他们没有做我需要的。

1 个答案:

答案 0 :(得分:1)

听起来你需要在循环中使用interp1(即保留原始顺序)在每对连续点之间进行插值:

X = [10; 10.0001; 9; 48];   %// You can consider something like X = [10;10;9;48]; X=X+rand(size(X))*0.0001 instead of dealing with equal X values manually
Y = [10; 20; 50; 6];

m = 3333; %//num points between nodes
n = m*(length(X)-1);

Yi = zeros(n,1);
Xi = [];
for k = 1:length(X)-1
    xi = linspace(X(k), X(k+1), m);
    Xi = [Xi, xi];
    Yi(((k-1)*m+1):k*m) = interp1(X(k:k+1), Y(k:k+1),xi); 
end

plot(X,Y,'or');
hold on
plot(Xi,Yi);

要获得五边形(而不是W),请尝试使用以下输入的循环代码:

X = [0.25; 0.75; 1; 0.5; 0; 0.25];
Y = [0; 0; 1; 1.8; 1; 0];

结果:

enter image description here