Interpolate x,y coordinates and timesteps
Show older comments
Heallo,
I have an array M with x, y, coordinates points in the 1st and 2nd column [x= M(2:end,1); y= M(2:end,2)]. The following columns are the values (for example temperatures) for different timesteps [timesteps = M(1,3:end].
How can I interpolate the x,y coordinates and the timesteps?
clc
clear
M(5,7)=0;
M(1,2:7)=0:10:50;
M(2:5,1)=1:4;
M(2:5,2)=1:0.5:2.5;
M(2,3:7)=100:3:112;
M(3,3:7)=110:3:122;
M(4,3:7)=120:3:132;
M(5,3:7)=120:3:132;
5 Comments
Mathieu NOE
on 4 Mar 2024
seems to me (if I understand correctly) that x and y are not independant variables.
we can do a 2D interpolation beetween x and time (or y and time , as x and y are linked) , but we cannot make any 3D interpolation as if x,y and time are independant data.

Patrick Frey
on 4 Mar 2024
Mathieu NOE
on 5 Mar 2024
exact !!
Patrick Frey
on 5 Mar 2024
Mathieu NOE
on 5 Mar 2024
my pleasure !!
Answers (1)
In your example, you only have a 2D M array, but I guess what you want is a 3D interpolation, so with another dimension in M ?
M = [[103,113,123,123]',[106,116,126,126]',[109,119,129,126]',[112,122,132,132]'];
% Building an example of a 3 dimensional array
values(:,1,:) = M;
values(:,2,:) = M*1.05;
values(:,3,:) = M*1.1;
values(:,4,:) = M*1.15;
timesteps = (20:10:50)';
x = (1:4)';
y = (1:0.5:2.5)';
% query values
x_query = [1.1 3.2];
y_query = [1.3 2.2];
time_query = [21 45];
query_values = interp3(x,y,timesteps,values,x_query,y_query,time_query)
1 Comment
Patrick Frey
on 4 Mar 2024
Categories
Find more on Interpolation 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!