# How to define a for loop for given FINDPEAKS problem ?

7 views (last 30 days)
Parvesh on 24 Feb 2024
Commented: Dyuman Joshi on 29 Feb 2024
[A1,L] = findpeaks(A(:,1));
A1(:,2) = A(L,2);
[A2,L1] = findpeaks(A1(:,1));
A2(:,2) = A1(L1,2);
[A3,L2] = findpeaks(A2(:,1));
A3(:,2) = A2(L2,2);
Dyuman Joshi on 24 Feb 2024
Edited: Dyuman Joshi on 24 Feb 2024
What exactly are you trying to do here?
Parvesh on 24 Feb 2024
Actually the matrix A comprises of two columns. 1st column contains acceleration (dependent variable) and the 2nd column is associated time-period (Variable).
The whole code isattached herewith.

Dyuman Joshi on 24 Feb 2024
Try this -
n=3;
B = [num2cell(A,1); cell(n,2)]
for k=2:n
[B{k,1}, L] = findpeaks(B{k-1,1});
B{k,2} = B{k-1,2}(L);
end
Here 1st row of B corresponds to A, 2nd to A1, 3rd to A2 and 4th to A3.
Use indexing to access the data.
Parvesh on 28 Feb 2024
it is giving error, "Unrecognized function or variable 'd'.
Error in Chamoli1991VDC02 (line 6)
num = numel(d);"
Let me share you the .dat file so that you can recheck from your end. By the way, thanks a lot man!!
Dyuman Joshi on 29 Feb 2024
Ah, that's a typo. My bad.
To correct it, replace
num = numel(d);
with
num = numel(data);

### Categories

Find more on Descriptive Statistics in Help Center and File Exchange

R2021a

### Community Treasure Hunt

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

Start Hunting!