Interpolate x,y coordinates and timesteps
Afficher commentaires plus anciens
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 commentaires
Mathieu NOE
le 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
le 4 Mar 2024
Mathieu NOE
le 5 Mar 2024
exact !!
Patrick Frey
le 5 Mar 2024
Mathieu NOE
le 5 Mar 2024
my pleasure !!
Réponses (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 commentaire
Patrick Frey
le 4 Mar 2024
Catégories
En savoir plus sur Interpolation 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!