How to find a series of 'next max' and their indices in an array of numbers?

2 ビュー (過去 30 日間)
Alon Rozen
Alon Rozen 2019 年 9 月 4 日
コメント済み: Alon Rozen 2019 年 9 月 4 日
Hi,
Suppose I have an array of numbers.
I want to find all the numbers, and their indices, which are largest then all previous ones.
For example, for the array:
X = [ 1 2 5 3 4 7 2 3 10 3]
I will get:
Largest: [1 2 5 7 10]
Indices: [1 2 3 6 9]
Sure I can solve it with a 'for' loop.
What will be the fastest way to do it in Matlab?
  2 件のコメント
Fabio Freschi
Fabio Freschi 2019 年 9 月 4 日
Note that it should be
Largest = [1 2 5 7 10]
Alon Rozen
Alon Rozen 2019 年 9 月 4 日
編集済み: Alon Rozen 2019 年 9 月 4 日
Thanks :)
Corrected.

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

採用された回答

Fabio Freschi
Fabio Freschi 2019 年 9 月 4 日
編集済み: Fabio Freschi 2019 年 9 月 4 日
use cummax to find the cumulative maximum, then play with the solution using unique
>> Y = cummax(X)
Y =
1 2 5 5 5 7 7 7 10 10
>> [largest,index] = unique(Y)
largest =
1 2 5 7 10
index =
1
2
3
6
9

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeOperators and Elementary Operations についてさらに検索

タグ

製品


リリース

R2016b

Community Treasure Hunt

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

Start Hunting!

Translated by