How to calculate maximum up to current point?

2 visualizaciones (últimos 30 días)
Steven Niggebrugge
Steven Niggebrugge el 18 de Ag. de 2017
Comentada: John D'Errico el 18 de Ag. de 2017
Hi, how can i calculate the an array of current maxima, i.e. for each point in the array to calculate the maximum from the first observation of the array to the current? e.g. for array [3 8 10 6] i want the output to be [3 8 10 6] ?
Is there a function to do this (movmax i think it works for a fixed lookback or lookforward) or do i just need to loop through all observations?
  2 comentarios
José-Luis
José-Luis el 18 de Ag. de 2017
You probably meant [3,8,10,10] as your result.
Steven Niggebrugge
Steven Niggebrugge el 18 de Ag. de 2017
yes indeed, thanks very much!

Iniciar sesión para comentar.

Respuestas (2)

John D'Errico
John D'Errico el 18 de Ag. de 2017
cummax([3 8 10 6])
ans =
3 8 10 10
  2 comentarios
José-Luis
José-Luis el 18 de Ag. de 2017
Editada: José-Luis el 18 de Ag. de 2017
+1
Whenever I think of a tortured way, there's a built-in function. It is hard to keep up.
John D'Errico
John D'Errico el 18 de Ag. de 2017
I keep learning new things on Answers. New little goodies that appeared when I was not watching. I guess we all should read the release notes religiously. That would take all the fun out of it though. :)

Iniciar sesión para comentar.


José-Luis
José-Luis el 18 de Ag. de 2017
a = [3,8,10,6,5,11,12,-20];
n = numel(a);
result = tril(bsxfun(@minus,a,a'));
[~,idx] = max(result,[],2);
result = a(idx)

Categorías

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

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by