finding several values close to the set point
2 次查看(过去 30 天)
显示 更早的评论
Hello!
I would like to calculate the period in a curve using the mean. However, my attempts to date have not been successful, and I think there is a simple way to do it.
I put random data - eventually I will have a lot of different data and this is to be the method for determining it.
I managed to find the closest value, but unfortunately 1, and I need a few of them to determine the curve's symmetry axis.
Edit: It doesn't search for peaks, because the data on which I work has a few of them on the main peaks, and filtration changes the shape of the plot very much.
Thank you for every advice.
A=[1.5 2.3 3.7 4.6 5.3 4.2 3.8 2.7 1.3 2.6 3.9 4.8 6.1 5.3 4.3 3.6 2.8 1.6 2.4 3.6 4.7 5.4 4.0 2.8 1.5 2.7 3.8 4.7];
A=A';
s = size(A);
t = 1:1:s(1);
plot (t,A)
a = mean(A);
Edit2:
In the attachment I add the real data I work on. From each cell I choose 1 column as X and 3 columns as Y in plot (X, Y).
0 个评论
采纳的回答
Ameer Hamza
2020-3-18
The following code works by detecting the peak of each cycle and then calculate the average distance between each peak
A=[1.5 2.3 3.7 4.6 5.3 4.2 3.8 2.7 1.3 2.6 3.9 4.8 6.1 5.3 4.3 3.6 2.8 1.6 2.4 3.6 4.7 5.4 4.0 2.8 1.5 2.7 3.8 4.7];
A=A';
t = 1:1:size(A,1);
plot(t,A);
[~, index_peaks] = findpeaks(A);
t_peaks = t(index_peaks);
period = mean(diff(t_peaks));
8 个评论
Ameer Hamza
2020-3-18
Yes, that can be issue, but since you are taking the average of each interval so this difference is somewhat compensated.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!