Peak alignment from matrix of curves

5 views (last 30 days)
Hi, I'm working on a project that needs me to align and average multiple curves into a single curve. Right now I have a 150x4 matrix that gives the graph:
I need to shift the graphs so that all of their peaks line up but I'm not sure how I should do it. Here is also the relevant code:
Stress_min = islocalmin(Stress_smooth, 'MinProminence', prominence);
figure;
plot(time, Stress_smooth, time(Stress_min), Stress_smooth(Stress_min), 'r*')
mins_locs = ceil(time(Stress_min) * 30);
num_min = length(mins_locs)-1;
for i = 1:num_min
Stress_smooth_curves = Stress_smooth(mins_locs(i):mins_locs(i+1));
Stress_curves(1:length(Stress_smooth_curves), i) = Stress_smooth_curves;
end
figure;
plot(Stress_curves);

Accepted Answer

Star Strider
Star Strider on 26 Feb 2019
See if the alignsignals (link) function will provide the result you need. Choose one signal and align the rest of them to it.
  5 Comments
Samuel Tomp
Samuel Tomp on 26 Feb 2019
That worked perfectly thank you!

Sign in to comment.

More Answers (0)

Products


Release

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!