MATLAB: How to measure an angle of peaks in a plot

angleplot

I want to measure the angle of te peaks in the plot. How can I do this?
Y=[36;35;34;33;32;31;30;29;28;27;26;25;24;23;22;21;20;19;18;17;16;15;14;13;12;11;10;9;8;7;6;5;4;5;6;7;8;9;10;11;12;13;14;15;16;15;14;13;12;11;10;9;8;7;6;5;6;7;8;9;10;11;12;13;14;15;16;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;18;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;18;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1;0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1;0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1;0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1;0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1;0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;17;16;15;14;13;12;11;10;9;8;7;6;5;6;7;8;9;10;11;12;13;14;15;16;17;18;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36]
[pks,locs] = findpeaks(Y);
hold on
plot(Y)
plot(locs, pks,"rx")
hold off

Best Answer

That completely depends on how you define ‘angle’.
This calculates the angle based on the peaks, and draws quiver arrows (‘angrad’ are the angles in radians):
angrad = atan2(pks,locs);
figure
hold on
plot(Y)
plot(locs, pks,"rx")
quiver(locs,pks,cos(angrad),sin(angrad), 0.25)
hold off
this calculates and draws arrows between adjacent peaks:
angrad = atan2(diff(pks),diff(locs));
figure
hold on
plot(Y)
plot(locs, pks,"rx")
quiver(locs(1:end-1),pks(1:end-1),cos(angrad),sin(angrad), 0.25)
hold off
There are likely several other ways as well.
This should get you started.
EDIT — (2 Oct 2020 at 12:31)
Corrected typographical error.
.