expanding matrix with linear line between new samples

1 visualizzazione (ultimi 30 giorni)
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

Risposta accettata

Matt J
Matt J il 9 Mag 2021
Modificato: Matt J il 9 Mag 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

Più risposte (0)

Categorie

Scopri di più su Interpolation in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by