Interpolate a 1024x116 Matrix to a 1024x1024 Matrix

1 visualización (últimos 30 días)
Hello!
I have an array of 116 curves (columns) with 1024 data points (rows) each. What I would like to do is expand the matrix to include the curves at the intermediate values between the 116 curves. Which interpolation function should I use, interp1() or interp2()?

Respuesta aceptada

Walter Roberson
Walter Roberson el 23 de En. de 2021
Assuming the curves are independent of each other, use interp1()
x = 1:116;
c1 = randn(1,116);
c2 = rand(1,116)*5;
y = linspace(-5,5,1024) .';
curves = c2 .* exp(c1.*y - (y-2).^2);
imagesc(x, y, curves)
xq = linspace(1, 116, 1024);
curves2 = interp1(x, curves.', xq) .';
imagesc(xq, y, curves2)
  1 comentario
Walter Roberson
Walter Roberson el 26 de En. de 2021
You need to rename or delete your C:\Users\CGordon\Desktop\FindPeaksTrials\interp1.m as it is interfering with calling the MATLAB interp1 function.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by