フィルターのクリア

How to calculate maximum up to current point?

2 ビュー (過去 30 日間)
Steven Niggebrugge
Steven Niggebrugge 2017 年 8 月 18 日
コメント済み: John D'Errico 2017 年 8 月 18 日
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 件のコメント
José-Luis
José-Luis 2017 年 8 月 18 日
You probably meant [3,8,10,10] as your result.
Steven Niggebrugge
Steven Niggebrugge 2017 年 8 月 18 日
yes indeed, thanks very much!

サインインしてコメントする。

回答 (2 件)

John D'Errico
John D'Errico 2017 年 8 月 18 日
cummax([3 8 10 6])
ans =
3 8 10 10
  2 件のコメント
José-Luis
José-Luis 2017 年 8 月 18 日
編集済み: José-Luis 2017 年 8 月 18 日
+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 2017 年 8 月 18 日
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. :)

サインインしてコメントする。


José-Luis
José-Luis 2017 年 8 月 18 日
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)

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by