Interpolating a 3D Matrix using interp1
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a 14x14x221 matrix, A. Using a loop over the third dimension, I'm trying to interpolate the 14x14 matrix at each iteration of this loop to produce a new matrix that has more data points. Then save the new matrix at each iteration to form a new 3D matrix that has X,Y dimensions much greater than 14.
My question is how to use interp1 to spline the 14x14 matrix using the third dimension of the 14x14x221 matrix.
0 commentaires
Réponse acceptée
KSSV
le 22 Mar 2019
A = rand(14,14,221) ;
% interpolation along row
N = 100 ;
[m,n,p] = size(A) ;
iwant = zeros(m,N,p) ;
xi = linspace(1,n,N) ;
for i = 1:m
for j = 1:p
T = interp1(1:n,A(i,:,j),xi) ;
iwant(i,:,j) = T ;
end
end
A = iwant ;
Repeat the same along columns.
Plus de réponses (1)
Matt J
le 22 Mar 2019
Modifié(e) : Matt J
le 22 Mar 2019
Using my KronProd class (Download)
m=14; p=221; A = rand(m,m,p) ;
M=40; %new XY dimension
B=interp1(eye(m),linspace(1,m,M),'spline' );
A_upsampled=KronProd({B,1},[1,1,2],[nan,nan, p])*A;
0 commentaires
Voir également
Catégories
En savoir plus sur Multirate Signal Processing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!