У меня есть 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];
Моя цель - извлечь 2D-матрицу путем интерполяции 2 последовательных слоев 3D-матрицы.В этом примере я хочу, чтобы матрица находилась на 75% расстоянии между слоями 1 и 2. Я смог добиться этого, выполнив простую линейную интерполяцию, но я хотел бы получить более эффективный и умный способ выполнения этой задачи, возможно, используя преимуществавстроенные функции 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
, как и ожидалось.