我有一个三维矩阵,想要沿着这个矩阵的第三维插值数据。当然,以下是可能的:
(?:\s+\p{L}+)+
然而,这些for循环不是非常优雅和高效,尤其是当矩阵大小变大时。 有没有办法更有效地沿特定维度进行样条插值?
答案 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