comparing numbers on the same vector

2 次查看(过去 30 天)
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
y(1) = true;
for k = 2:length(x)
y(k) = (max(x(1:k-1))<x(k));
end
y = double(y);

更多回答(1 个)

Andrei Bobrov
Andrei Bobrov 2016-4-7
out = all(bsxfun(@ge,x,x') + triu(ones(numel(x)),1),2);

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

标签

产品

Community Treasure Hunt

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

Start Hunting!

Translated by