Please help me vectorize my loop to construct query vector from sample points
조회 수: 1 (최근 30일)
이전 댓글 표시
I want to construct a vector xq (the query vector) from xs (sample point vector) for use in interp1. Ideally, xq would:
- contain all element from xs
- evenly spaced when between any xs(i) and xs(i+1)
- xq(i+1)-xq(i)<t always true for a given threshold t.
- for xs(i+1)-xs(i)<t already, no xq between the 2 points (but just on xs(i+1) and xs(i))
I cannot think of any code to achieve all of 4 without some kind of loop. Does anyone have a good idea? Thanks in advance
Here is a loop version I wrote. I am sorry if I didn't prase my original question clearly.
t=2;
xs=cumsum(10*rand(1,10))
xsdelta=diff(xs)
xq=[];
for i=1:length(xsdelta)
xq=[xq,xs(i),nan([1,floor(xsdelta(i)/t)])];
end
xq=[xq,xs(end)]
xq=fillmissing(xq,"linear",2)
댓글 수: 0
채택된 답변
Bruno Luong
2021년 4월 13일
편집: Bruno Luong
2021년 4월 13일
xs=cumsum(ceil(10*rand(1,10)))
t=pi;
p=cumsum([0 ceil(diff(xs)/t)]);
xq=interp1(p,xs,0:p(end))
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Multirate Signal Processing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!