Reducing values preceding the 1st minima to zero
Show older comments
I need to reduce the value of all the values before the 1st minima, to zero, e.g. if I had: -
x = 0:30;
y = [10 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 5 4 3 2 3 4 3 2 1 0.5 0.3 0.2 0.1 0]';
figure(1)
plot(x,y)
ylim([0 10])
then I need a bit of code that changes it to: -
z = [0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 5 4 3 2 3 4 3 2 1 0.5 0.3 0.2 0.1 0]';
figure(2)
plot(x,z)
ylim([0 10])
instead.
Can anyone suggest something?
Many thanks.
Accepted Answer
More Answers (1)
Andrei Bobrov
on 22 Jul 2014
Edited: Andrei Bobrov
on 22 Jul 2014
ii = find(diff(diff(y)<0)==-1,1)+1;
y1=y;
y1(1:ii)=y(ii);
or
ii = strfind([0,diff(y(:)')<0],[1 0]);
y1=y;
y1(1:ii(1)) = y(ii(1));
Categories
Find more on Downloads in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!