# Reducing values preceding the 1st minima to zero

1 visualizzazione (ultimi 30 giorni)
Tom il 22 Lug 2014
Commentato: Azzi Abdelmalek il 22 Lug 2014
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])
Can anyone suggest something?
Many thanks.
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Risposta accettata

Azzi Abdelmalek il 22 Lug 2014
Modificato: Azzi Abdelmalek il 22 Lug 2014
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]';
[~,jj]=findpeaks(-y,'npeaks',1)
z=y
z(1:jj)=0
##### 2 CommentiMostra NessunoNascondi Nessuno
Tom il 22 Lug 2014
Many thanks!
Azzi Abdelmalek il 22 Lug 2014
z=[zeros(idx,1) ;y(idx+1:end)]

Accedi per commentare.

### Più risposte (1)

Andrei Bobrov il 22 Lug 2014
Modificato: Andrei Bobrov il 22 Lug 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));
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Categorie

Scopri di più su Get Started with MATLAB in Help Center e File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by