Interpolation of (multidimensional) array

8 visualizaciones (últimos 30 días)
Maron Dolling
Maron Dolling el 15 de Sept. de 2021
Comentada: Maron Dolling el 16 de Sept. de 2021
Does anybody know a proper way on how to interpolate an array so, that i can get from something like
[0, 0, 0, 4, 0, 0, 7, 0, 0, 0]
to
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
?
Can one extrapolate this to e.g. a 3D array?
Thanks in advance!

Respuesta aceptada

the cyclist
the cyclist el 15 de Sept. de 2021
So, this is a somewhat strange "interpolation" (and extrapolation) problem. It requires certain assumptions to leap from your data to the result. Are you saying that your data are effectively the following?
y = [4 7];
x = [4 7]; % Inferred because the non-zero values of y occur at the 4th and 7th position
And, are you saying that your data exist at x values of 1:10, because of the length of your original vector?
And, are you saying that you want to linearly extrapolate outside the range 4:7?
If all of that is true, then I guess this does what you want.
data = [0, 0, 0, 4, 0, 0, 7, 0, 0, 0];
x = find(data);
y = data(x);
xq = 1:length(data);
yq = interp1(x,y,xq,'linear','extrap')
yq = 1×10
1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000
But this solution hinges on the fact that the element positions (1st element, 2nd element, and so on) are equivalent to the data values, which is really strange. So, I have my doubts that this will achieve what you want in your actual real-life problem.
  1 comentario
Maron Dolling
Maron Dolling el 16 de Sept. de 2021
Sorry, didn't anticipate that my minimal example may be that misunderstandable. But your answer helps a lot, I figured out a good solution.
Just for your understanding, I was trying to calculate a 3D displacement field for an image volume by knowing only two (or a few) distorted surfaces and interpolating linearly along a certain dimension. But I just didn't find a way around a computational heavy loop.
Thanks a lot!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by