Utilizing "maxk" function in series of vectors

1 visualización (últimos 30 días)
Daeyeon Koh
Daeyeon Koh el 2 de Sept. de 2021
Editada: Matt J el 2 de Sept. de 2021
Hi. I used "findpeaks" function, and get peak datas in vector(pks, locs): "locs" means the X value.
And I wanna get 4 peak datas in vector in order to "locs" value like the loaded picture in red grid (in the range of 1<locs<10).
But according to the present code, I can only get seperate "maxk" values for each pks and locs.
How can I get desirable vector array like the picture?
for n=1:col-2
y=numbers(:,col);
ys=smooth(y,50,'sgolay',5);
[pks,locs] = findpeaks(ys,x,'MinPeakDistance',0.5);
A{n}=[pks,locs];
B{n}=maxk(A{n,1}(locs>1&locs<10,:),4);
end

Respuesta aceptada

Matt J
Matt J el 2 de Sept. de 2021
Editada: Matt J el 2 de Sept. de 2021
for n=1:col-2
y=numbers(:,col);
ys=smooth(y,50,'sgolay',5);
[pks,locs] = findpeaks(ys,x,'MinPeakDistance',0.5);
[~,idx]=maxk( pks(locs>1&locs<10) ,4);
A{n}=[pks,locs];
B{n}=A{n}(idx,:);
end
  2 comentarios
Daeyeon Koh
Daeyeon Koh el 2 de Sept. de 2021
Hi Matt, and thank you for your help.
I understand usability of indexing.
By the way, although I set the locational range (locs>1&locs<10), it looks like "locs>1" doesn't work.
(the picture below is a result when sorting idx: sort(idx))
How to solve this problem?
Matt J
Matt J el 2 de Sept. de 2021
Editada: Matt J el 2 de Sept. de 2021
To troubleshoot, we need to see pks and locs. I suggest attaching them in a .mat file.

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by