How to implement interpolation using Prelookup using a MATLAB function?
22 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Amr
el 25 de Nov. de 2025 a las 8:24
Respondida: Walter Roberson
el 25 de Nov. de 2025 a las 20:48
I have data with size 1201 26 37 384
I want to interpolate the first three dimenssions to get the fourth F(dim1, dim2, dim3) = column with size 348.
I'm using interpolation Using Prelookup and Prelookup to interpolate the first three dimentions and get the output is the fourth diminsion.
How can I implement this using matlab function instead of the simulink blocks?
I have tried using `griddedInterpolant` inside MATLAB funciton, but seems Simulink does not like it.
Is there any ideas?
0 comentarios
Respuestas (2)
Chuguang Pan
el 25 de Nov. de 2025 a las 9:15
Data = rand(1201,26,37,384);
[X1,X2,X3] = ndgrid(linspace(0,2,1201),linspace(0,2,26),linspace(0,2,37));
[X1q,X2q,X3q] = ndgrid(linspace(1,2,50));
Data_query=arrayfun(@(idx) interpn(X1,X2,X3,Data(:,:,:,idx),X1q,X2q,X3q,'linear'),1:384,"UniformOutput",false);
Data_output = cat(4,Data_query{:});
size(Data_output)
3 comentarios
Walter Roberson
el 25 de Nov. de 2025 a las 10:28
I am confused about whether your target is implementation in Simulink (seems like it from your comments); or if your target is outside Simulink (as requested explicitly in your initial question) ?
Walter Roberson
el 25 de Nov. de 2025 a las 20:48
Convert your 4D data into a 3D array together with an (1201*26*37) x 384 array. The 3D array values should be column indices into the N x 384 array, and "nearest" interpolation should be done (in order to ensure that the outputs are indeed column indices.)
So, interpolated F(dim1, dim2, dim3) will return column indices into the N x 384 array, and you then use the returned column indices to extract the appropriate 384 values.
0 comentarios
Ver también
Categorías
Más información sobre Data Types en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!