How do I filter my data points without using smoothdata?
1 回表示 (過去 30 日間)
古いコメントを表示
I have 2 variables, t and y, which are both vectors. What I want to do is smooth the data so that, for example, if t is a 10x1 vector, it becomes a 5x1 vector comprising an average of the data points around it. How do I go about this without using the smoothdata function?
Thank you very much and kind regards,
Tom
2 件のコメント
Bob Thompson
2018 年 12 月 11 日
I'm sure there's a better way, but you could do this manually using a for loop and interpolation.
t2 = linspace(t(1),t(end),5);
for i = 1:5;
y2(i) = interp1(t,y,t2(i));
end
Chad Greene
2018 年 12 月 11 日
Note: Interpolation without smoothing or lowpass filtering first could result in aliasing.
回答 (2 件)
Chad Greene
2018 年 12 月 11 日
2 件のコメント
Image Analyst
2018 年 12 月 12 日
No, it's part of base MATLAB. If you get help on any function, it will tell you what toolbox it's in, if any.
Image Analyst
2018 年 12 月 12 日
編集済み: Image Analyst
2018 年 12 月 12 日
You could use conv() to smooth y.
windowWidth = 5;
kernel = ones(1, windowWidth) / windowWidth;
smoothedY = conv(y, kernel, 'valid'); % conv() is in base MATLAB.
Do NOT smooth t, for obvious reasons.
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!