Borrar filtros
Borrar filtros

How can I compare vector`s values?

2 visualizaciones (últimos 30 días)
Miro Mitev
Miro Mitev el 16 de Ag. de 2016
Comentada: Miro Mitev el 16 de Ag. de 2016
I have a vector like on the figure bellow. I extracted the min and max values of it (A,B,C,D,E,F,G) and now I need to make a comparison of all the consecutive values and put the difference in another vector. In other words to find the difference between the values A with B; B with C etc. (named 1,2,3,4,5,6 on the figure).
And my code:
b=[1 2 3 4 5 6 7 8 9 8 7 6 5 4 5 6 7 8 9 10 7 4 3 2 1 4 7 8 9 7 6 5 4 3 4 5 6 7 8 3 2 1];
k=numel(b);
MIN=zeros(1,k);
MAX=zeros(1,k);
for i=3:k
if b(i-1)>b(i-2) && b(i-1)>b(i)
MAX(i-1)=b(i-1);
end
end
for i=3:k
if b(i-1)<b(i-2) && b(i-1)<b(i)
MIN(i-1)=b(i-1);
end
end
MIN=MIN(MIN~=0);
MAX=MAX(MAX~=0);

Respuesta aceptada

Thorsten
Thorsten el 16 de Ag. de 2016
Editada: Thorsten el 16 de Ag. de 2016
Index of extrema:
b = b(:);
idx = find(([b(1); b(1:end-1)] - b).*([b(2:end); b(end)] - b) > 0);
Difference between extrema
d = diff(b(idx));
  3 comentarios
Thorsten
Thorsten el 16 de Ag. de 2016
I added b = b(:) to convert b to a column vector.
Miro Mitev
Miro Mitev el 16 de Ag. de 2016
Thank you! It is exactly what i was searching for.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by