Info

This question is closed. Reopen it to edit or answer.

In an assignment A(I) = B, the number of elements in B and I must be the same.

1 view (last 30 days)
I'm not quite sure what is wrong with my code. I am trying to figure out a ranges from my y-axis to determine what to name certain peaks: For example, if the peaks lie within the range of 0.1-0.3, the are considered "twave", from 0.3-0.6 they are "rwave", and from 0.6 - 1 they are "wave".
Does anyone have any advice?
"equalize" is the file that I am reading
function [ pwave,rwave,twave ] = peakwaves( equalize )
peakwaves = findpeaks(equalize, 'MINPEAKHEIGHT',0.1); %configures all of the peaks
a = length(peakwaves);
counter1 = 0;
counter2 = 0;
counter3 = 0;
for i = 0.1:a;
if 0.3 < a && a < 0.6;
counter = counter + 1;
pwave(counter) = peaks(i);
elseif .1 < a && a < 2.9;
counter2 = counter2 + 1;
twave(counter2) = peaks(i);
else a < 1;
counter3 = counter3 + 1;
rwave(counter3) = peaks(i);
end
end

Answers (1)

Azzi Abdelmalek
Azzi Abdelmalek on 6 Nov 2013
Edited: Azzi Abdelmalek on 6 Nov 2013
When you wrote pwave(counter) = peaks(i); , peaks is not defined
Also a = length(peakwaves); is an integer, What [0.3, a] represent?
Try this
function [ pwave,rwave,twave ] = peakwaves( equalize )
peakwaves = findpeaks(equalize, 'MINPEAKHEIGHT',0.1);
pwave = peakwaves(0.3 < peakwaves & peakwaves < 0.6);
rwave = peakwaves(0.6 <= peakwaves & peakwaves < 1);
twave = peakwaves(1 <= peakwaves & peakwaves < 2.9);
  12 Comments
Chace
Chace on 6 Nov 2013
meaning, I can load all peaks in the file from 0.1 to 1
consider "rwaves" = 0.6 to 1
and consider "twaves" to be 0.3 to 1 false if rwaves
and consider "pwaves" to be 0.1 to 1 false if twaves
so they continue to cancel out the previous condition as the scale increases

Products

Community Treasure Hunt

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

Start Hunting!