comparing numbers on the same vector

hi, i have vector
x=[1 ;5; 20; 10; 15 ;30];
i want to have
y=[1 ;1;1;0;0;1];
such that if the number is bigger than the maximum number (before him) i get 1 else i get 0
here is my try
for i=x(:)
if i> max(x(1:i-1))
y(i)=1 ;
else y(i)=0 ;
end
end
but i know that something wrong with max(x(1:i-1))

 採用された回答

Roger Stafford
Roger Stafford 2016 年 4 月 6 日

0 投票

y(1) = true;
for k = 2:length(x)
y(k) = (max(x(1:k-1))<x(k));
end
y = double(y);

1 件のコメント

jean claude
jean claude 2016 年 4 月 6 日
good answer thanks a lot !

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

その他の回答 (1 件)

Andrei Bobrov
Andrei Bobrov 2016 年 4 月 7 日

0 投票

out = all(bsxfun(@ge,x,x') + triu(ones(numel(x)),1),2);

カテゴリ

ヘルプ センター および File ExchangeTime Series Events についてさらに検索

製品

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by