Extract value from a 3D array with interpolation
Afficher commentaires plus anciens
I have a 3D array with row (row_ID), column (col_ID) and Z (z_ID) identifiers.
Essentially what I need is:
- For a particular (row_ID, col_ID, z_ID), return the data value stored at that location.
- If the (row_ID, col_ID) are not integers, then perform an interpolated value. z_ID will always be an integer.
Thank you
Réponses (1)
KSSV
le 7 Fév 2017
load data.mat ;
A = gim_tec ;
[m,n,p] = size(A) ;
x = 1:n ;
y = 1:m ;
[X,Y] = meshgrid(x,y) ;
%%pick series if integer
row = 2 ;
col = 3 ;
iwant = zeros(1,p) ;
for i = 1:p
iwant(i) = A(row,col,i) ;
end
%%If fractions
row = 1.5 ;
col = 7.5 ;
iwant1 = zeros(1,p) ;
for i = 1:p
iwant1(i) = interp2(X,Y,A(:,:,i),row,col) ;
end
8 commentaires
BenL
le 7 Fév 2017
KSSV
le 7 Fév 2017
Yes row and col is your desired row_ID, col_ID and z value is what you find i.e iwant.
BenL
le 7 Fév 2017
BenL
le 7 Fév 2017
Walter Roberson
le 7 Fév 2017
KSSV
le 7 Fév 2017
interp2 is not linear ...Read documentation...As suggested by Walter have a look into griddedInterpolant.
Walter Roberson
le 7 Fév 2017
Catégories
En savoir plus sur Calendar dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!