Double the resolution of a vector
조회 수: 9 (최근 30일)
이전 댓글 표시
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,
댓글 수: 0
채택된 답변
Azzi Abdelmalek
2016년 8월 2일
편집: Azzi Abdelmalek
2016년 8월 2일
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
Azzi Abdelmalek
2016년 8월 2일
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
2016년 8월 2일
편집: Azzi Abdelmalek
2016년 8월 2일
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
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!