How to Smooth a plot conserving some point?
3 ビュー (過去 30 日間)
古いコメントを表示
I am searching to smooth in some way my plot. It shows the sequence of 1 big hill and 1 small hill. If I use smooth, smoothdata (with all the methods and the window) I don't find any solution.
I repeat that the aim is to have a smooth curve with the same peaks of the original smooth. Some little help, please?
Thank you

0 件のコメント
採用された回答
Star Strider
2022 年 1 月 31 日
1 件のコメント
Star Strider
2022 年 1 月 31 日
This provides a smoother result, and includes all the original data, without significantly distorting the original waveform.
Experiment with something like this approach —
data = readmatrix('https://www.mathworks.com/matlabcentral/answers/uploaded_files/879640/data.txt');
L = numel(data); % Vector Length
t1 = linspace(0, L-1, L); % Independent Original Vector
t2 = linspace(0, L-1, 5*L); % Independent Interpolation Vector
data2 = interp1(t1, data, t2, 'pchip'); % Interpolate
figure
plot(t1, data, '.-')
hold on
plot(t2, data2, '-', 'LineWidth',1.5)
hold off
grid
legend('Original Data','Interpolated Data', 'Location','best')
xlim([2540 2585])
I chose the interpolation vector to have 5 times the length of the original vector. That can be easily changed, as can the interpolation method, depending on the desired result.
.
その他の回答 (1 件)
参考
カテゴリ
Help Center および File Exchange で Smoothing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
