【发布时间】:2019-05-09 15:19:17
【问题描述】:
我有一个这样定义的 3D 矩阵:
A = zeros(3,3,3)*3;
A(:,:,1) = [1 2 3; 3 2 1; 3 4 7];
A(:,:,2) = [4 5 6; 6 5 4; 2 5 8];
A(:,:,3) = [7 8 9; 9 8 7; 3 6 9];
我的目标是通过对 3D 矩阵的 2 个连续层进行插值来提取 2D 矩阵。在这个例子中,我希望矩阵在第 1 层和第 2 层之间的距离为 75%。我能够通过做一个简单的线性插值来实现这一点,但我想获得一些更好、更智能的方法来执行这项任务,也许可以利用内置 Matlab 函数。
l = 1; % Layer: 1<= l <= size(A,3)-1
x = 0.75; % Distance at which i want to interpolate from layer 0<= x <= 1
AMin = A(:,:,l);
AMax = A(:,:,l+1);
AMin + (AMax-AMin)*x
返回
3.25 4.25 5.25
5.25 4.25 3.25
2.25 4.75 7.75
正如预期的那样。
【问题讨论】:
标签: arrays matlab matrix interpolation