Extract value from a 3D array with interpolation

1 vue (au cours des 30 derniers jours)
BenL
BenL le 7 Fév 2017
Modifié(e) : BenL le 9 Fév 2017
I have a 3D array with row (row_ID), column (col_ID) and Z (z_ID) identifiers.
Essentially what I need is:
  1. For a particular (row_ID, col_ID, z_ID), return the data value stored at that location.
  2. 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
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
KSSV
KSSV le 7 Fév 2017
interp2 is not linear ...Read documentation...As suggested by Walter have a look into griddedInterpolant.
Walter Roberson
Walter Roberson le 7 Fév 2017
interp2 defaults to linear, but there are some options

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrices and Arrays 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!

Translated by