How to Smooth a plot conserving some point?
조회 수: 5 (최근 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!
