フィルターのクリア

How can I compare vector`s values?

2 ビュー (過去 30 日間)
Miro Mitev
Miro Mitev 2016 年 8 月 16 日
コメント済み: Miro Mitev 2016 年 8 月 16 日
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);

採用された回答

Thorsten
Thorsten 2016 年 8 月 16 日
編集済み: Thorsten 2016 年 8 月 16 日
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 件のコメント
Thorsten
Thorsten 2016 年 8 月 16 日
I added b = b(:) to convert b to a column vector.
Miro Mitev
Miro Mitev 2016 年 8 月 16 日
Thank you! It is exactly what i was searching for.

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

その他の回答 (0 件)

カテゴリ

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