Filter löschen
Filter löschen

Double the resolution of a vector

11 Ansichten (letzte 30 Tage)
Luis Isaac
Luis Isaac am 2 Aug. 2016
Bearbeitet: Azzi Abdelmalek am 2 Aug. 2016
Dear
I would like to double the resolution of a vector in an efficient way (i.e. vectorizing) I mean, for example for the vector [0 2 5 10 12] the result is [0 1 2 3.5 5 7.5 10 11 12]
Calculate the new values is easy, for example:
a=[0 2 5 10 12];
b=a(1:length(a)-1)+diff(a)/2;
But I don't know how to insert the new values in the original vector
Many thanks,

Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 2 Aug. 2016
Bearbeitet: Azzi Abdelmalek am 2 Aug. 2016
a=[0 2 5 10 12]
b=sort([a a(1:end-1)+diff(a)/2])
You can also use interp1 function
a=[0 2 5 10 12]
b=interp1(1:numel(a),A,1:.5:numel(A))
  2 Kommentare
Azzi Abdelmalek
Azzi Abdelmalek am 2 Aug. 2016
Luis Isaac commented
Many thanks The first solution works in this case but it not satisfactory for me because asume that a vector is in ascending order
But the second way is pefect!!
Azzi Abdelmalek
Azzi Abdelmalek am 2 Aug. 2016
Bearbeitet: Azzi Abdelmalek am 2 Aug. 2016
a=[0 2 5 10 12]
b= a(1:end-1)+diff(a)/2
c=zeros(1,2*numel(a)-1)
c(1:2:end)=a
c(2:2:end)=b

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Vector Fields finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by