Sign switching in a sequence

3 ビュー (過去 30 日間)
olig
olig 2013 年 6 月 7 日
I have a column vector for example,
A=[10; 30; 30; 40; 60; 70; 50; 50; 60; 20; 20]
What I want to do is count each time a number makes a transition from a smaller number to a large number, to count the numbers of times a number makes a transition from a larger number to a smaller number and the number of times the is no change in numbers.
Any help would be great thanks!

採用された回答

Doug Hull
Doug Hull 2013 年 6 月 7 日
Look at the diff command. It will subtract each element from the next. Look at the sign of that calculation and you will be all set.
>> A=[10; 30; 30; 40; 60; 70; 50; 50; 60; 20; 20]
A =
10
30
30
40
60
70
50
50
60
20
20
>> d = diff(A)
d =
20
0
10
20
10
-20
0
10
-40
0
>> nnz(d > 0)
ans =
5
>> nnz(d < 0)
ans =
2
>> nnz(d == 0)
ans =
3

その他の回答 (1 件)

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 6 月 7 日
編集済み: Azzi Abdelmalek 2013 年 6 月 7 日
ii=histc(sign(diff(A)),[-1;0;1])
%ii(1) correspond to switch high-low
%ii(2) no switch
%ii(3) switch low-high
doc diff
doc sign
doc histc
  1 件のコメント
olig
olig 2013 年 6 月 7 日
Thanks!

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

カテゴリ

Help Center および File ExchangePolynomials についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by