Extract value from a 3D array with interpolation
1 view (last 30 days)
Show older comments
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
0 Comments
Answers (1)
KSSV
on 7 Feb 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 Comments
KSSV
on 7 Feb 2017
interp2 is not linear ...Read documentation...As suggested by Walter have a look into griddedInterpolant.
See Also
Categories
Find more on Matrices and Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!