在Matlab中沿矩阵的一维进行样条插值

时间:2016-05-04 13:17:08

标签: matlab matrix interpolation

我有一个三维矩阵,想要沿着这个矩阵的第三维插值数据。当然,以下是可能的:

(?:\s+\p{L}+)+

然而,这些for循环不是非常优雅和高效,尤其是当矩阵大小变大时。 有没有办法更有效地沿特定维度进行样条插值?

1 个答案:

答案 0 :(得分:1)

看起来直接在spline上调用M可以完全按照您的要求执行操作:

M = rand(3,3,5);
x = 1:5;
xx = linspace(1,5,10);

%// loop approach
I1 = zeros(3,3,10);
for row = 1:3
    for col = 1:3
        I1(row,col,:) = spline(x, M(row,col,:), xx);
    end
end

%// just calling spline
I2 = spline(x, M, xx);

测试正确性

>> isequal(I1,I2)

ans =

     1