expanding matrix with linear line between new samples

1 view (last 30 days)
hi
lets say i have a 1x20 matrix called A which are samples of a plot
i want to expand A to be 1x50
when i try to make it lets call is matrix B, the samples in the middle are zero and i just want the previous and the next sample to connect (avrage/avrages)
lets say A=[1 2 3 4 5 6 ...
i want a B=[1 0 2 0 3 0 4 ... ===> B=[1 1.5 2 2.5 3 3.5 4]
BUT heres the thing theyre not equally distributed
B=[1 0 0 0 2 0 0 3 ... ===> B=[1 1.25 1.5 1.75 2 2.33 2.66 3 ...
what im asking is how to expand my matrix to be linearly connected between samples
thank you
and sorry for bad english

Accepted Answer

Matt J
Matt J on 9 May 2021
Edited: Matt J on 9 May 2021
B=[1 0 0 0 2 0 0 3];
x=find(B~=0);
xq=1:numel(B);
B=interp1(x,B(x),xq)
B = 1×8
1.0000 1.2500 1.5000 1.7500 2.0000 2.3333 2.6667 3.0000

More Answers (0)

Community Treasure Hunt

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

Start Hunting!