Why is my code identifies only few peaks?

1 vue (au cours des 30 derniers jours)
Chaitanya Bade
Chaitanya Bade le 17 Avr 2017
Commenté : Greg Dionne le 11 Mai 2017
Hello there,
I have a code that generates graph of two column vectors by plotting the peak values. The code works well except for a case where if i add mean to center my axis,it is plotting only first one or 2 peaks for the files. However, if i take off the the code in brackets which is to find mean ( a1 = XDATA - mean (XDATA); plot(TIMESTEPS, a1); ) the code works well identifying all the peaks. Can anyone help me out with this?
>> %BATCH MODE
files = dir('C:\Users\Deakin Uni\Documents\MATLAB\a\*.xlsx');
fNames = {'90','110','150'};
%for each file
for k= 1: length(fNames)
% extract file names
fName = ['C:\Users\Deakin Uni\Documents\MATLAB\a\', fNames{k}];
[XDATA, TIMESTEPS] = importfile(fName);
a1 = XDATA - mean (XDATA);
plot(TIMESTEPS, a1);
[peakvals,peaklocs] = findpeaks(a1, 'minpeakdistance',50, 'minpeakheight', 0.00001);
peaktime = TIMESTEPS(peaklocs);
createfigure4(TIMESTEPS, a1, peaktime, peakvals)
saveas(gcf,sprintf('chaitu%d.png',k));
end
Looking for a quick answer
Thanks in advance

Réponse acceptée

Greg Dionne
Greg Dionne le 2 Mai 2017
you probably should also subtract the mean from the value you passed to 'minpeakheight' if you want it to track the data.
  4 commentaires
Chaitanya Bade
Chaitanya Bade le 9 Mai 2017
Also, do you know how can i run the csvwrite command in a loop. I have used the one mentioned above. It doesn't work. Any suggestions?
Greg Dionne
Greg Dionne le 11 Mai 2017
Probably best to ask a separate question for that (include what you tried and what's not working well). I've used xlsread and xlswrite but I'm not trying to write streamed output like you are.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by