How to fill values between two values.

A = [1 0 0 0 2 0 3 0 0 0 0 4 0 5 ....]
B = [1 1.25 1.5 1.75 2 2.5 3 3.2 3.4 3.6 3.8 4 4.5 5 ....]
Is there a function for this?

 Respuesta aceptada

Stephen23
Stephen23 el 17 de Nov. de 2015
Editada: Stephen23 el 17 de Nov. de 2015
You could use interp1:
>> A = [1,0,0,0,2,0,3,0,0,0,0,4,0,5];
>> X = find(A);
>> B = interp1(X,A(X),1:numel(A))
B =
1.0000 1.2500 1.5000 1.7500 2.0000 2.5000 3.0000 3.2000 3.4000 3.6000 3.8000 4.0000 4.5000 5.0000

Más respuestas (1)

Andrei Bobrov
Andrei Bobrov el 17 de Nov. de 2015
A = [1 0 0 0 2 0 3 0 0 0 0 4 0 5];
t = A ~= 0;
x = 1:numel(A);
B = interp1(x(t),A(t),x);

Categorías

Más información sobre Elementary Math en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 17 de Nov. de 2015

Respondida:

el 17 de Nov. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by